Установка nginx в качестве frontend к apache2
|На данный момент на сервере есть уже установленные mysql, apache2, php5 и php7. Теперь установим в качестве кеширующего фронт-энд сервера nginx. Работа сервера будет происходить по следующей схеме:
apt-get install nginx
В конце установки появится ошибка
Это нормально. Nginx не смог запуститься т.к. порт 80 занят apache2. Остановим apache2 и запустим nginx
service apache2 stop && service nginx start
После этого мы увидим стартовую страницу nginx
Переведем 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
Настроим 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
Запросы от nginx на 80 порту проксируются на порт 8080 apache2.
Может быть интересно: