Skip to content

Commit b974f36

Browse files
Add Spanish translation for deploy/nginx.md (#1032)
Add Spanish translation for deploy/nginx.md --------- Co-authored-by: Ale Mohamad ⌘ <[email protected]>
1 parent b8374f2 commit b974f36

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed

docs/deploy/nginx.es.md

+165
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Despliegue con Nginx
2+
3+
Nginx es un servidor y proxy HTTP extremadamente rápido, confiable, y fácil de configurar. Aunque Vapor soporta servir peticiones HTTP con o sin TLS directamente, hacer un proxy con Nginx puede proporcionar un aumento en rendimiento, seguridad y facilidad de uso.
4+
5+
!!! note "Nota"
6+
Recomendamos hacer un proxy de los servidores HTTP de Vapor con Nginx.
7+
8+
## Descripción
9+
10+
¿Qué significa poner un proxy a un servidor HTTP? En pocas palabras, un proxy actúa como un intermediario entre el Internet público y tu servidor HTTP. Las peticiones llegan al proxy y éste las envía a Vapor.
11+
12+
Una propiedad importante de este proxy intermediario es que puede alterar e inclusive redirigir las peticiones. Por ejemplo, el proxy puede requerir que el cliente use TLS (https), limitar la tasa de peticiones e incluso servir ficheros públicos sin comunicarse con tu aplicación de Vapor.
13+
14+
![nginx-proxy](https://cloud.githubusercontent.com/assets/1342803/20184965/5d9d588a-a738-11e6-91fe-28c3a4f7e46b.png)
15+
16+
### Más Detalles
17+
18+
El puerto por defecto para recibir peticiones HTTP es el puerto `80` (y `443` para HTTPS). Cuando enlazas un servidor de Vapor al puerto `80`, recibirá y responderá directamente a las peticiones HTTP que lleguen a tu servidor. Cuando añades un proxy como Nginx, enlazas Vapor a un puerto interno, como el puerto `8080`.
19+
20+
!!! note "Nota"
21+
Puertos mayores que no necesitan `sudo` para enlazarse.
22+
23+
Cuando Vapor está enlazado a otro puerto además de `80` o `443`, no será accesible para el Internet externo. Entonces enlazas Nginx al puerto `80` y lo configuras para que enrute las peticiones a tu servidor de Vapor enlazado en el puerto `8080` (o el que hayas elegido).
24+
25+
Y eso es todo. Si Nginx está configurado correctamente, verás que tu aplicación de Vapor responde a las peticiones en el puerto `80`. Nginx actúa como proxy ante las peticiones y responde de manera invisible.
26+
27+
## Instalar Nginx
28+
29+
El primer paso es instalar Nginx. Una de las mejores cosas de Nginx es la enorme cantidad de recursos de la comunidad y documentación que tiene. Por ello, no entraremos en detalle sobre cómo instalar Nginx, pues seguramente hay un tutorial para tu plataforma, sistema operativo y proveedor.
30+
31+
Tutoriales:
32+
33+
- [How To Install Nginx on Ubuntu 20.04](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-20-04)
34+
- [How To Install Nginx on Ubuntu 18.04](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04)
35+
- [How to Install Nginx on CentOS 8](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-8)
36+
- [How To Install Nginx on Ubuntu 16.04](https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04)
37+
- [How to Deploy Nginx on Heroku](https://blog.codeship.com/how-to-deploy-nginx-on-heroku/)
38+
39+
### Package Managers
40+
41+
Nginx puede instalarse mediante package managers en Linux.
42+
43+
#### Ubuntu
44+
45+
```sh
46+
sudo apt-get update
47+
sudo apt-get install nginx
48+
```
49+
50+
#### CentOS y Amazon Linux
51+
52+
```sh
53+
sudo yum install nginx
54+
```
55+
56+
#### Fedora
57+
58+
```sh
59+
sudo dnf install nginx
60+
```
61+
62+
### Validar la Instalación
63+
64+
Comprueba que Nginx se ha instalado correctamente visitando la dirección IP de tu servidor en un navegador.
65+
66+
```
67+
http://server_domain_name_or_IP
68+
```
69+
70+
### Servicio
71+
72+
El servicio puede iniciarse o detenerse.
73+
74+
```sh
75+
sudo service nginx stop
76+
sudo service nginx start
77+
sudo service nginx restart
78+
```
79+
80+
## Arrancando Vapor
81+
82+
Nginx puede iniciarse y detenerse con los comandos `sudo service nginx ...`. Necesitarás algo parecido para iniciar y detener tu servidor de Vapor.
83+
84+
Existen muchas formas de hacerlo, dependiendo de la plataforma en la que vayas a desplegar. Revisa las instrucciones de [Supervisor](supervisor.md) para añadir comandos para iniciar y detener tu aplicación de Vapor.
85+
86+
## Configurar el Proxy
87+
88+
Los ficheros de configuración para los sitios habilitados pueden encontrarse en `/etc/nginx/sites-enabled/`.
89+
90+
Crea un nuevo fichero o copia la plantilla de ejemplo ubicada en `/etc/nginx/sites-available/` para empezar.
91+
92+
A continuación tienes un ejemplo de un fichero de configuración para un proyecto de Vapor llamado `Hello` en el directorio "home".
93+
94+
```sh
95+
server {
96+
server_name hello.com;
97+
listen 80;
98+
99+
root /home/vapor/Hello/Public/;
100+
101+
location @proxy {
102+
proxy_pass http://127.0.0.1:8080;
103+
proxy_pass_header Server;
104+
proxy_set_header Host $host;
105+
proxy_set_header X-Real-IP $remote_addr;
106+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
107+
proxy_connect_timeout 3s;
108+
proxy_read_timeout 10s;
109+
}
110+
}
111+
```
112+
113+
Este fichero de configuración asume que el proyecto `Hello` se enlaza con el puerto `8080` al iniciarlo en el modo de producción.
114+
115+
### Servir Ficheros
116+
117+
Nginx también puede servir ficheros públicos sin preguntar a tu aplicación de Vapor. Esto puede mejorar el rendimiento liberando el proceso de Vapor para otras tareas más pesadas.
118+
119+
```sh
120+
server {
121+
...
122+
123+
# Sirve todos los ficheros públicos/estáticos via nginx y recurre a Vapor para el resto
124+
location / {
125+
try_files $uri @proxy;
126+
}
127+
128+
location @proxy {
129+
...
130+
}
131+
}
132+
```
133+
134+
### TLS
135+
136+
Añadir TLS es relativamente sencillo siempre y cuando los certificados hayan sido generados correctamente. Para generar certificados TLS gratuitamente, echa un vistazo a [Let's Encrypt](https://letsencrypt.org/getting-started/).
137+
138+
```sh
139+
server {
140+
...
141+
142+
listen 443 ssl;
143+
144+
ssl_certificate /etc/letsencrypt/live/hello.com/fullchain.pem;
145+
ssl_certificate_key /etc/letsencrypt/live/hello.com/privkey.pem;
146+
147+
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
148+
ssl_prefer_server_ciphers on;
149+
ssl_dhparam /etc/ssl/certs/dhparam.pem;
150+
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
151+
ssl_session_timeout 1d;
152+
ssl_session_cache shared:SSL:50m;
153+
ssl_stapling on;
154+
ssl_stapling_verify on;
155+
add_header Strict-Transport-Security max-age=15768000;
156+
157+
...
158+
159+
location @proxy {
160+
...
161+
}
162+
}
163+
```
164+
165+
La configuración de arriba son los ajustes relativamente estrictos para TLS con Nginx. Algunos ajustes no son necesarios, pero aumentan la seguridad.

0 commit comments

Comments
 (0)