Instale Nginx como proxy inverso Apache2 en Ubuntu 18.04 LTS

27 feb 2021 2 min di lettura
Instale Nginx como proxy inverso Apache2 en Ubuntu 18.04 LTS
Indice dei contenuti

Prerrequisitos

Instalar Apache2

Configuración de Apache2

Lo primero que debemos hacer es cambiar el puerto predeterminado que usa Apache2, por lo que usaremos el puerto 8000 en lugar del 80. Desde la terminal damos este comando:

sudo nano /etc/apache2/ports.conf

Buscamos la línea:


Listen 80

Cambiemos la puerta:


Listen 8000

Guarde y cierre el archivo.

Ahora cambiemos el puerto en VirtualHost. Siempre desde la terminal:

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

Estamos buscando:


<VirtualHost *:80>

Cambiemos la puerta:


<VirtualHost *:8000>

Guarde y cierre el archivo.

Podemos instalar un módulo Apache2 libapache2-mod-rpaf que tiene la tarea de cambiar la dirección del cliente remoto visible para otros módulos de Apache.

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

Reiniciamos Apache2:

sudo service apache2 restart

Instalación y configuración de Nginx

Para más detalles lea la guía sobre Nginx

Desde la terminal:

sudo apt install nginx

Activemos el inicio automático de Nginx:

sudo systemctl enable nginx.service

Reiniciamos Nginx:

sudo service nginx restart

Encontraremos configuraciones de proxy predeterminadas en el siguiente archivo:

sudo nano /etc/nginx/proxy_params

Agreguemos las siguientes configuraciones de proxy estándar:


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;

Guarde y cierre el archivo.

Abramos el archivo de configuración de Nginx:

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

Esta es una configuración básica que nos permite usar Nginx como proxy inverso 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;
 }
 }

Reiniciemos Nginx

sudo service nginx reload

Nginx es más rápido que Apache en el servicio de archivos estáticos como Js y CSS, por lo que configuramos Nginx para entregar archivos estáticos directamente y enviar solicitudes PHP a 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;
 }

 }

Guarde y cierre el archivo. Verifiquemos la configuración correcta de Nginx:

sudo nginx -t

Entonces reiniciamos Nginx si no hemos cometido ningún error se reiniciará sin problemas:

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.