Установка nginx в качестве frontend к apache2

На данный момент на сервере есть уже установленные mysql, apache2, php5 и php7. Теперь установим в качестве кеширующего фронт-энд сервера nginx. Работа сервера будет происходить по следующей схеме:

nginx_frontend_scheme

apt-get install nginx

В конце установки появится ошибка

nginx_install

Это нормально. Nginx не смог запуститься т.к. порт 80 занят apache2. Остановим apache2 и запустим nginx

service apache2 stop && service nginx start

После этого мы увидим стартовую страницу nginx

nginx_welcome_page

Переведем apache2 и тестовые сайты на прослушивание порта 8080 для http

Для этого в файле /etc/apache2/ports.conf изменим значение параметра Linsten с 80 на 8080.

То же самое проделаем для каждого виртуального хоста apache2 (testsite.com и testsite.biz)

После этого запустим apache2

Service apache2 start

 

Убедимся, что apache2 прослушивает порт 8080, a nginx – 80

Netstat –nlp | grep apache

Netstat –nlp | grep nginx

netstat_output

test_page

Настроим nginx для проксирования запросов. Создадим виртуальный хост nginx

 

touch /etc/nginx/sites-available/testsite.com

Приведем данный файл к следующему виду:

server {

        listen 80;         index index.php;

        server_name testsite.com www.testsite.com;         root /var/www/testsite.com;

        access_log /var/log/nginx/testsite.com-acces.log;         error_log /var/log/nginx/testsite.com-error.log;

        location / {

                proxy_pass http://127.0.0.1:8080;                 proxy_set_header Host $host;

                proxy_set_header X-Real-IP $remote_addr;                 proxy_set_header X-Forwarded-For $remote_addr;                 proxy_connect_timeout 120;                 proxy_send_timeout 120;

                proxy_read_timeout 180;

        }

        location ~ /\.ht {                 deny all;

        }

        location ~*\.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {                 root /var/www/testsite.com;

        }

}

Секция location / {} перенаправляет все запросы на вебсервер 127.0.0.1 и порт 8080, на котором запросы слушает apache

Секция location ~ /\.ht {} запрещает доступ к файлам .htaccess, необходимых для работы apache2 Последняя секция указывает nginx напрямую, минуя apache2 отдавать статические файлы.

Перезапустим оба веб-сервера, чтобы убедиться, что всё работает.

Service nginx restart && service apache2 restart

Перейдем на сайт testsite.com

Смотрите так же   Что за штука Pump.io ?

test_site

Запросы от nginx на 80 порту проксируются на порт 8080 apache2.

Может быть интересно:

Добавьте комментарий