Introducción
Si su intención es instalar Nginx como proxy inverso Apache2 en un servidor remoto, continúe leyendo; de lo contrario, si desea instalar Nginx en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación.
Para conectarse al servidor como root, escriba este comando:
ssh root@IP_DEL_SERVER
A continuación, se le pedirá que ingrese la contraseña del usuario root.
Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
Ahora está conectado a su servidor, está listo para comenzar a instalar Nginx como proxy inverso.
Prerrequisitos
Instalación de Apache en Debian 10.
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 127.0.0.1:80>
Cambiemos la puerta:
<VirtualHost 127.0.0.1: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 obtener más detalles, lea la guía sobre Nginx.
Desde la terminal:
sudo apt-get -y 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, si no hay errores, reinicie Nginx:
sudo service nginx reload
La instalación de Nginx como proxy inverso Apache2 en Debian 10 ha finalizado.