Как да настроите обратен прокси сървър на Nginx за Apache
Nginx и Apache са два от най-популярните уеб сървъри в света, като всеки от тях има своите силни страни. Apache е известен със своята гъвкавост и стабилна модулна система, докато Nginx е предпочитан заради високата си производителност и ниската консумация на ресурси, особено за обслужване на статично съдържание. В много сценарии е полезно да се комбинират двата сървъра, като се използва Nginx като обратен прокси сървър пред Apache. Тази конфигурация позволява на Nginx да обработва входящите заявки и да обслужва статични файлове, докато Apache се справя с динамичното съдържание, например PHP скриптове или приложения, управлявани от бази данни.
В тази статия ще ви преведем през процеса на настройване на Nginx като обратен прокси сървър за Apache, което ще осигури безпроблемна и ефективна конфигурация на уеб сървъра.
Какво представлява обратният прокси сървър?
Обратният прокси сървър е сървър, който се намира пред един или повече вътрешни сървъри и препраща клиентските заявки към съответния сървър. В този случай Nginx ще действа като обратен прокси сървър, препращайки заявките към Apache, който ще обслужва динамично съдържание.
Използването на Nginx като обратен прокси сървър предлага няколко предимства:
- Подобрена производителност: Nginx се отличава с бързото обслужване на статични файлове (напр. изображения, CSS, JavaScript), което намалява натоварването на Apache.
- Балансиране на натоварването: Nginx може да разпределя трафика между няколко обратни сървъра, като подобрява наличността и надеждността.
- Прекратяване на SSL: Nginx може да се справя с криптирането на SSL, като разтоварва изчислителното натоварване от Apache.
- Сигурност: Nginx може да предоставя допълнителни функции за сигурност, като филтриране на заявки и ограничаване на скоростта.
Стъпка 1: Инсталиране на Nginx и Apache
Преди да конфигурирате Nginx като обратен прокси сървър, уверете се, че на вашия сървър са инсталирани Nginx и Apache. Можете да ги инсталирате с помощта на мениджъра на пакети в зависимост от вашата дистрибуция на Linux.
За Debian/Ubuntu:
За CentOS/RHEL:
След като Nginx и Apache са инсталирани, стартирайте и активирайте двете услуги, за да се уверите, че те работят при зареждане:
Стъпка 2: Конфигуриране на Apache
Apache ще действа като бекенд сървър, който обработва динамични заявки, като например PHP скриптове. Уверете се, че Apache е настроен да слуша на определен порт, обикновено
8080
80
80
Конфигуриране на Apache да слуша на порт 8080:
- Отворете конфигурационния файл на Apache:
- Намерете реда, който указва порта, на който Apache слуша (обикновено, и го променете на:
Listen 80)
- Запазете промените и излезте от редактора.
- Рестартирайте Apache, за да приложите промените:
Сега Apache е конфигуриран да слуша на порт
8080
80
Стъпка 3: Конфигуриране на Nginx като обратен прокси сървър
След това трябва да конфигурираме Nginx да действа като обратен прокси сървър, препращайки заявките към Apache. Ще създадем виртуален хост в Nginx, който ще слуша на порт
80
8080
Създаване на конфигурация на виртуален хост в Nginx:
- Отворете или създайте нов конфигурационен файл за виртуален хост в Nginx:
- Добавете следната конфигурация към файла:
В тази конфигурация:
- : Nginx слуша на порт
слушане 80
за входящи заявки.80
- : Домейнът или IP адресът, който Nginx ще обслужва.
server_name
- : Препраща заявките към Apache, който слуша на порт
proxy_pass
.8080
- : Предава различни заглавия на Apache, включително оригиналния IP адрес и протокол на клиента.
proxy_set_header
- Блокът заза статично съдържание гарантира, че Nginx обслужва директно файлове като изображения, CSS и JavaScript, като намалява натоварването на Apache.
местоположение
- Запазете и затворете конфигурационния файл.
- Ако използвате Debian/Ubuntu, разрешете сайта, като създадете symlink към:
sites-enabled
- Тествайте конфигурацията на Nginx за синтактични грешки:
- Рестартирайте Nginx, за да приложите новата конфигурация:
Стъпка 4: Тестване на настройката на обратния прокси сървър
След като Nginx и Apache са конфигурирани, е време да тествате настройката на обратното прокси, за да се уверите, че всичко работи правилно.
- Посетете вашия домейн или IP адрес: Отворете браузъра си и отидете на адрес(заменете го с действителния домейн или IP адрес на сървъра). Ако всичко е настроено правилно, трябва да видите съдържанието, което се обслужва от Apache, но се пренасочва през Nginx.
http://example.com
- Проверете дневниците на Nginx и Apache: Ако има някакви проблеми, проверете дневниците на Nginx и Apache, за да ги отстраните:
- Регистри на Nginx:и
/var/log/nginx/access.log
/var/log/nginx/error.log
- Дневници на Apache:и
/var/log/apache2/access.log
(или/var/log/apache2/error.log
за CentOS/RHEL)/var/log/httpd/
- Регистри на Nginx:
Стъпка 5: (по избор) Конфигуриране на SSL за HTTPS
Ако искате да защитите уебсайта си с HTTPS, Nginx може да се справи с прекратяването на SSL. Това означава, че Nginx ще управлява SSL сертификатите и криптирането, докато Apache ще обработва само декриптирания HTTP трафик.
Стъпки за активиране на SSL:
- Получаване на SSL сертификат: Можете да използвате Let’s Encrypt, за да получите безплатен SSL сертификат за вашия домейн:
- Промяна на конфигурацията на Nginx: Актуализирайте конфигурационния файл на Nginx, за да слуша на портза HTTPS:
443
- Пренасочване на HTTP към HTTPS: Добавете блок за пренасочване в конфигурацията си, за да гарантирате, че всички HTTP заявки се пренасочват към HTTPS:
- Рестартирайте Nginx: Рестартирайте Nginx, за да приложите промените:
Заключение
Използването на Nginx като обратен прокси сървър за Apache е мощна настройка, която съчетава силните страни и на двата уеб сървъра. Nginx обработва ефективно статичното съдържание и входящите заявки, докато Apache управлява динамичното съдържание и обработката на задния сървър. Този хибриден подход може значително да подобри производителността, сигурността и мащабируемостта на инфраструктурата на вашия уеб сървър.
Като следвате стъпките, описани в това ръководство, можете да настроите Nginx като обратен прокси сървър пред Apache и да се възползвате от най-доброто от двата свята. Освен това внедряването на SSL с Nginx гарантира, че уебсайтът ви е защитен, осигурявайки спокойствие за вас и вашите потребители.