Hostwinds Tutoriales

Resultados de búsqueda para:


Tabla de contenido


Prerrequisitos
Configuración de Nginx
Pruebe la configuración de Nginx

Proxy inverso Nginx con SSL

Etiquetas: Cloud Servers,  SSL,  VPS 

Prerrequisitos
Configuración de Nginx
Pruebe la configuración de Nginx

Nginx es una herramienta poderosa. Le permite servir múltiples aplicaciones, sitios web, aplicaciones de carga y mucho más. Esta flexibilidad se alimenta con un sistema de configuración relativamente simple que utiliza archivos de configuración de lectura casi humana. Esta guía demostrará cómo configurar un proxy inverso de NGINX con SSL en una Hostwinds Cloud VPS.

Prerrequisitos

Esta guía asumirá una comprensión general de usar un sistema basado en Linux a través de la línea de comandos y asumirá aún más los siguientes requisitos previos:

  • Ubuntu 18.04
  • Usuario no root
  • Aplicación que se ejecuta en el puerto de proxy inverso deseado (esta guía asumirá el puerto 3000)
  • Registro de nombre DNS A para el dominio deseado
  • Certificado SSL para el dominio

Configuración de Nginx

El paquete Nginx-full tiene como valor predeterminado un entorno dinámico de host virtual compartido. Los archivos de configuración para cada host virtual están disponibles para su uso aquí:

/etc/nginx/sites-available/

Esta ubicación tendrá un archivo llamado defecto Disponible para usar como plantilla de base. Sin embargo, crearemos manualmente un nuevo archivo de configuración en esta guía y lo relaberemos según sea necesario. Una vez que haya iniciado sesión como su usuario no root, emita este comando para iniciar el proceso:

sudo touch /etc/nginx/sites-available/domain.tld

Asegúrese de reemplazar dominio-tld con el dominio que está utilizando realmente.

A continuación, nos movemos para modificar ese archivo para realizar las tareas que necesitamos que haga. Estaremos usando empuje en esta guía como editor de texto. Puedes utilizar nano o cualquier otro editor de texto según sus preferencias personales.

sudo vim /etc/nginx/sites-available/domain.tld

Ahora que el archivo existe agregue el siguiente texto a este archivo. Modifique el texto indicado para hacer referencia a su dominio, el puerto está usando su aplicación y sus rutas de certificado SSL. Este archivo será la configuración principal para el proxy inverso:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
proxy_set_header Host $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;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

Guarde el archivo y salga del editor de texto.

Pruebe la configuración de Nginx

Ahora que se creó la configuración, tenemos que decirle a Nginx que busque el archivo en carga. Haremos un enlace simbólico:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

A continuación, probamos la configuración antes de reiniciar el servicio del sistema Nginx

sudo nginx -t

Luego, debe ejecutar la prueba y mostrar el siguiente mensaje si se realiza correctamente:

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

Ahora sabemos que el archivo de configuración no causará un choque, por lo que reiniciemos el servicio NGINX y pruebe la aplicación.

sudo systemctl restart nginx

Ahora debería tener acceso a la aplicación que se ejecuta en el puerto definido navegando a la dominio-tld como se muestra en el archivo de configuración de Nginx creado anteriormente.

Escrito por Hostwinds Team  /  junio 14, 2019