Apache и Nginx ― это программное обеспечение с открытым исходным кодом, которое позволяет создавать веб-сервер.
Apache работает по технологии мультипроцессинга: каждое соединение с сервером помещается в отдельный поток и доводится в нём до финального результата. Сервер не возьмет в работу другое соединение, пока первое не будет обработано полностью. У этой технологии есть один существенный минус — высокий риск перегрузки. Поэтому Апач требует для работы много ресурсов и мощностей.
Nginx удобно использовать как почтовый сервер или обратный прокси-сервер (например, nginx reverse proxy nginx или nginx reverse proxy https to https). Он снижает нагрузку на сервер при обработке запросов на файлы, а также балансирует нагрузки, что повышает отказоустойчивость сервера. Nginx позволяет обрабатывать сотни тысяч единовременных подключений на одном физическом сервере, однако требует установки PHP-FPM. Поэтому Nginx и Апач нередко используют в связке. В статье ниже мы расскажем, как настроить их для совместной работы, а также, как использовать обратный прокси-сервер.
Обратите внимание:
- на сервере должна быть установлена ОС Ubuntu 18.04 или 20.04,
- перед настройкой нужно подключиться к серверу по SSH.
Как установить и настроить Nginx proxy
-
1
Введите команду:
apt-get install nginx
-
2
Откройте файл конфигурации в редакторе с помощью команды:
vim /etc/nginx/sites-available/example_nginx.conf
-
3
Вставьте в консоль следующий код:
server { listen 80; root /var/www/; index index.php; server_name example.com; location / { try_files $uri $uri/ /index.php$args; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ~ /\. { deny all; } }
Этими командами вы установили:
- правильный веб-каталог в качестве root;
- в качестве index — index.php;
- обслуживание страниц с помощью try_files, либо переадресацию на прокси;
- proxy_pass в качестве адреса для proxy;
- запрет доступа к скрытым файлам с помощью location.
Благодаря этим правилам файлы вида .php будут перенаправляться с Nginx прокси на сервер Apache (если для него назначен порт 8080).
- 4 Сохраните изменения и выйдите из редактора.
-
5
Включите созданный виртуальный хост командами:
cd /etc/nginx/sites-enabled/
ln -s ../sites-available/example_nginx.conf example_nginx.conf
service nginx reload
Готово, вы установили Nginx reverse proxy. Теперь займитесь настройкой Апач.
Как настроить Apache и PHP
-
1
Введите команду:
apt-get install apache2 libapache2-mod-php7.0
-
2
Откройте нужный файл командой:
vim /etc/apache2/ports.conf
-
3
Укажите порт, к которому будут адресованы запросы Apache:
Listen 127.0.0.1:8080
Затем сохраните изменения и выйдите из редактора.
-
4
Откройте файл через редактор командой:
vim /etc/apache2/sites-available/example-apache.conf
-
5
Добавьте в файл:
<VirtualHost 127.0.0.1:8080> DocumentRoot /var/www/ ServerName example.com ErrorLog /var/log/apache2/example_error.log CustomLog /var/log/apache2/example_access.log common <Directory /var/www/> Options FollowSymLinks AllowOverride All #Следующие 2 строки не будут работать в apache >= 2.4, необходимо использовать директиву Require all granted #Order allow,deny #Allow from all Require all granted </Directory> </VirtualHost>
Затем сохраните изменения и выйдите из редактора.
-
6
Запустите созданный виртуальный хост. После этого запустите Apache командой:
a2ensite example-apache.conf && service apache2 start
-
7
mkdir -p /var/www/ && echo '<?php phpinfo();' > /var/www/index.php
Готово, nginx reverse proxy настройка прошла успешно. Чтобы использовать серверы совместно, мы задали в настройках директиву «proxy_pass». Если вы введете в поисковую строку браузера «http://example.com/», отобразится вывод функции phpinfo().
Теперь при обращении к сайту статические элементы (css, js-файлы и изображения) будет обрабатывать Nginx, а Apache — динамический контент (php-скрипты).
Как использовать обратный прокси-сервер
Прокси-сервер — это дополнительный шлюз, который участвует в интернет-соединении. Proxy используется в качестве посредника между клиентом и сайтом, на который он хочет перейти. При подключении через proxy-server текущий IP-адрес клиента заменяется на другой — это ускоряет интернет-соединение, а также позволяет обойти блокировку ресурса и многое другое.
Возможности прокси-сервера
Соединение, установленное через дополнительный шлюз в виде прокси-сервера (например, proxy reverse nginx), позволяет:
- отслеживать трафик;
- увеличивать итоговую скорость загрузки за счет предварительного кэширования данных;
- посещать сайты в режиме полного инкогнито за счет постоянной смены IP-адреса;
- посещать территориально или регионально заблокированные ресурсы за счет перенаправления трафика через IP с местоположением, отличным от реального;
- устанавливать запрет на посещение определенных сайтов по их IP-адресу.
Подробнее об особенностях прокси-сервера и о том, как к нему подключиться, читайте в статье.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊