GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar el proxy inverso de Nginx

En este tutorial, le mostraremos cómo configurar un proxy inverso. Para aquellos de ustedes que no lo sabían, un proxy inverso Nginx HTTPS es un servicio de proxy intermediario que toma un cliente solicitud, la pasa a uno o más servidores y, posteriormente, entrega la respuesta del servidor al cliente. Si tiene varios servidores, un proxy inverso puede ayudar a equilibrar las cargas entre los servidores y mejorar el rendimiento. Como proxy inverso proporciona un único punto de contacto para los clientes, puede centralizar el registro y la generación de informes en varios servidores.

Este artículo asume que tiene al menos conocimientos básicos de Linux, sabe cómo usar el shell y, lo que es más importante, aloja su sitio en su propio VPS. La instalación es bastante simple y asume que se están ejecutando en la cuenta raíz, si no, es posible que deba agregar 'sudo ' a los comandos para obtener privilegios de root. Le mostraré paso a paso cómo configurar un proxy inverso.

Requisitos previos

  • Un servidor que ejecuta uno de los siguientes sistemas operativos:CentOS o Ubuntu Linux.
  • Se recomienda que utilice una instalación de sistema operativo nueva para evitar posibles problemas.
  • Un non-root sudo user o acceder al root user . Recomendamos actuar como un non-root sudo user , sin embargo, puede dañar su sistema si no tiene cuidado al actuar como root.

Configurar el proxy inverso de Nginx

Paso 1. Primero, comencemos asegurándonos de que su sistema esté actualizado.

sudo dnf update

Paso 2. Instalación de Nginx en el sistema Linux.

  • Instalar Nginx en CentOS 8 es tan simple como escribir:
sudo dnf install nginx
  • Instalar Nginx en Ubuntu 20.04 LTS es tan simple como escribir:
sudo apt install nginx

Una vez completada la instalación, habilite e inicie el servicio Nginx:

sudo systemctl enable nginx
sudo systemctl start nginx

Navegue a http://localhost en su navegador para verificar que el servidor web está funcionando como se esperaba:

Paso 3. Configure el proxy inverso de Nginx.

Primero, siga el siguiente comando para deshabilitar el host virtual:

sudo unlink /etc/nginx/sites-enabled/default

Necesitamos crear un archivo dentro de /etc/nginx/sites-available directorio que contiene la información del proxy inverso. Podemos nombrar esto reverse-proxy.conf por ejemplo:

nano reverse-proxy.conf
server {
    listen 80;
    location / {
        proxy_pass http://192.168.77.20;
    }
}

La parte importante aquí es el proxy_pass directiva que esencialmente le dice a cualquier solicitud que llegue a través del proxy inverso de Nginx que se pase al socket remoto de Apache 192.168.77.20:80.

Una vez que haya agregado las directivas apropiadas a su .conf archivo, actívelo vinculando a /sites-enabled/ usando el siguiente comando:

ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

Pruebe el archivo de configuración de Nginx:

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por último, debemos ejecutar una prueba de configuración de Nginx y reiniciar Nginx para comprobar su rendimiento:

sudo systemctl restart nginx

Paso 4. Nginx Reverse Proxy utilizando Let's Encrypt.

Ejecute estos comandos en la línea de comandos de la máquina para instalar Certbot:

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto

Luego, ejecute este comando para obtener un certificado y hacer que Certbot edite su configuración de Nginx automáticamente:

sudo /usr/local/bin/certbot-auto --nginx

El resultado es el siguiente:

Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your-domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for your-domain-a.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/reverse-proxy.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/reverse-proxy.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://your-domain.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your-domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your-domain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your-domain.com/privkey.pem
   Your cert will expire on 2020-08-03. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

¡Felicitaciones! Ha configurado con éxito un proxy inverso. Gracias por usar este tutorial para configurar un proxy inverso Nginx en el sistema Linux. Para obtener ayuda adicional o información útil, le recomendamos que consulte la sitio web oficial de Nginx.


Cent OS
  1. Cómo configurar un proxy inverso Nginx

  2. Proxy inverso con Nginx:una guía de configuración paso a paso

  3. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  4. Cómo instalar Odoo 11 en CentOS 7 con Nginx como proxy inverso

  5. Cómo instalar Odoo 14 en CentOS 8 con Nginx como proxy inverso

Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Cómo instalar nginx como proxy inverso para Apache en Ubuntu 16.04

Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Cómo configurar un host virtual Nginx

¿Cómo configurar el proxy inverso de Nginx en Plesk?

Cómo configurar Nginx como proxy inverso para Apache en Ubuntu 18.04 VPS