Установите Nginx в качестве обратного прокси-сервера Apache2 в Ubuntu 16.04

12 set 2022 2 min di lettura
Установите Nginx в качестве обратного прокси-сервера Apache2 в Ubuntu 16.04
Indice dei contenuti

Предпосылки

Установить Apache2

Конфигурация Apache2

Первое, что нужно сделать, это изменить порт по умолчанию, используемый Apache2, поэтому мы будем использовать порт 8000 вместо 80. В терминале введите следующую команду:

sudo nano /etc/apache2/ports.conf

Ищем строку:


Listen 80

Давайте поменяем дверь:


Listen 8000

Сохраните и закройте файл.

Теперь давайте изменим дверь на. Всегда из терминала:

sudo nano /etc/apache2/sites-available/000-default.conf

Мы ищем:


<VirtualHost 127.0.0.1:80>

Давайте поменяем дверь:


<VirtualHost 127.0.0.1:8000>

Сохраните и закройте файл.

Мы можем установить модуль Apache2 libapache2-mod-rpaf, задачей которого является изменение адреса удаленного клиента, видимого для других модулей Apache.

sudo apt-get -y install libapache2-mod-rpaf

Перезапускаем Apache2:

sudo service apache2 restart

Установка и настройка Nginx.

Подробнее читайте в руководстве по Nginx

Из терминала:

sudo apt-get -y install nginx

Активируем автоматический запуск Nginx:

sudo systemctl enable nginx.service

Перезапустим Nginx:

sudo service nginx restart

Мы найдем конфигурации прокси по умолчанию в следующем файле:

sudo nano /etc/nginx/proxy_params

Добавим следующие стандартные конфигурации прокси:


proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;

 client_max_body_size 100M;
 client_body_buffer_size 1m;
 proxy_intercept_errors on;
 proxy_buffering on;
 proxy_buffer_size 128k;
 proxy_buffers 256 16k;
 proxy_busy_buffers_size 256k;
 proxy_temp_file_write_size 256k;
 proxy_max_temp_file_size 0;
 proxy_read_timeout 300;

Сохраните и закройте файл.

Откроем файл конфигурации Nginx:

sudo nano /etc/nginx/sites-available/default

Это базовая конфигурация, которая позволяет нам использовать Nginx в качестве обратного прокси-сервера Apache2:


server {
 listen 80 default_server;
 listen [::]:80 default_server;

 root /var/www/html;

 index index.php index.html index.htm index.nginx-debian.html;

 server_name _;

 location /{
 proxy_pass http://localhost:8000;
 include /etc/nginx/proxy_params;
 }
 }

Перезапустим Nginx

sudo service nginx reload

Nginx быстрее, чем Apache, обслуживает статические файлы, такие как Js и CSS, поэтому мы настраиваем Nginx для прямого обслуживания статических файлов и отправки PHP-запросов в Apache:


server {
 listen 80;
 server_name default_server;
 root /var/www/html;
 index index.php index.htm index.html;

 location /{
 try_files $uri $uri//index.php;
 }

 location ~ \.php$ {
 proxy_pass http://localhost:8000;
 include /etc/nginx/proxy_params;
 }

 location ~* \.(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ {
 expires 30d;
 }

 }

Сохраните и закройте файл. Проверим правильность настройки Nginx:

sudo nginx -t

Затем перезапускаем Nginx, если мы не допустили ошибок, то сервис перезапускается нормально:

sudo service nginx restart

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.