El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

nginx y websocket

| Comments

Resulta que los websocket no pasan tan fácilmente por el proxy inverso. Llevan su burumba.

Aquí por ejemplo, haremos un proxy inverso con SSL para una aplicación que escucha por el puerto 8888.

“nginx”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
   listen 80 default_server;
   return 301 https://$host$request_uri;
}


server {
  listen 443 ssl default_server;
   ssl_certificate /etc/nginx/nginx.crt;
   ssl_certificate_key /etc/nginx/nginx.key;
   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://127.0.0.1:8888/;
      proxy_http_version 1.1;
      proxy_set_header Connection "upgrade";
      proxy_set_header Upgrade $http_upgrade;
      proxy_redirect default;
      proxy_read_timeout 1800;
      client_max_body_size 128G;
   }
}

Note como los encabezados Upgrade son seteados. Ese es el truco…

Si este artículo te resultó interesante, considere donar 0.06 BTC: 1Kg4gu3e7u8HUw8bj5NbBciRg6Y56kuFCU

Comments