Estoy trabajando en sockets web en una aplicación angular. Lo tengo conectado a un back-end de python a través de nginx. Descubro que obtengo errores 502 "Bad Gateway" aproximadamente el 90% del tiempo. Haré esto:
No puedo entender por qué sucede esto. No puedo decir por qué recibo un error 502. Tampoco puedo entender por qué hacer una recarga dura soluciona el problema. Cosas que he probado:
¿Qué debo buscar que me ayude a solucionar este problema?
EDITAR: Aquí está mi archivo nginx conf.d:
server { listen 80; index index.html; root /var/www/mysite; location / { access_log /var/log/nginx/mysite/ui.access.log; error_log /var/log/nginx/mysite/ui.error.log; try_files $uri $uri/ /index.html; } location /ws/ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Host $proxy_host; proxy_pass http://WEBSOCKET/; access_log /var/log/nginx/mysite/ws_services.access.log; error_log /var/log/nginx/mysite/ws_services.error.log; proxy_read_timeout 300s; } } upstream WEBSOCKET { ip_hash; server 127.0.0.1:8765; }No es el mismo problema que tuvo el OP, pero en caso de que alguien se encuentre con esto y tenga la misma configuración que yo tenía:
Estaba usando WebSockets sobre SSL (protocolo wss:// ) y apareció 502, aunque la configuración había funcionado antes. La configuración fue la siguiente:
... proxy_pass http://127.0.0.1:8080; ... En el backend, estaba usando un nodo con el paquete ws para crear un servidor websocket
Como dije: funcionaba antes, pero de repente dejó de funcionar. Además, nginx escribió upstream prematurely closed connection while reading response header from upstream en el registro de errores. Supongo que nginx o node cerraron algún tipo de problema de seguridad, lo que provocó que la configuración ya no funcionara.
Lo que tenía que hacer para que funcionara era usar https en lugar de http para la configuración de proxy_pass
... proxy_pass https://127.0.0.1:8080; ...