Vue.js . Фронт коннектится по wss к бэку.
                  
                  
                  В плане инфраструктуры - в докере запущен бэк, фронт и nginx, который является входной точкой и реверс прокси для бэка и фронта.
                  
                  
                  Всё это работает, но периодически (хотя и редко) после обновления/перезапуска контейнера с бэком, nginx кидает 502 и реджектит wss от фронта. В чём может быть дело?
                  
                  
                  Конфиги прикладываю ниже
                  
                  
                  
                  
                  
                  Первый конфиг:
                  
                  
                  upstream some-web {
                  
                  
                    server container_ip:80;
                  
                  
                  }
                  
                  
                  
                  
                  
                  server {
                  
                  
                           listen 0.0.0.0:80;
                  
                  
                           server_name  some.example.com;
                  
                  
                  
                  
                  
                           return 301 https://$host$request_uri;
                  
                  
                  }
                  
                  
                  
                  
                  
                  server {
                  
                  
                           listen 0.0.0.0:443 ssl http2;
                  
                  
                           server_name  some.example.com;
                  
                  
                  
                  
                  
                           proxy_read_timeout 86400s;
                  
                  
                           proxy_send_timeout 86400s;
                  
                  
                  
                  
                  
                           ssl_certificate /etc/letsencrypt/live/some.example.com/fullchain.pem;
                  
                  
                           ssl_certificate_key /etc/letsencrypt/live/some.example.com/privkey.pem;
                  
                  
                           ssl_trusted_certificate /etc/letsencrypt/live/some.example.com/fullchain.pem;
                  
                  
                  
                  
                  
                           location / {
                  
                  
                      proxy_pass http://some-web;
                  
                  
                    }
                  
                  
                  }
                  
                  
                  
                  
                  
                  Второй конфиг:
                  
                  
                  upstream some-websocket {
                  
                  
                    server container_ip:20000;
                  
                  
                  }
                  
                  
                  
                  
                  
                  map $http_upgrade $connection_upgrade {
                  
                  
                      default upgrade;
                  
                  
                      '' close;
                  
                  
                  }
                  
                  
                  
                  
                  
                  server {
                  
                  
                    listen 0.0.0.0:80;
                  
                  
                    server_name server.some.example.com; 
                  
                  
                  
                  
                  
                    return 301 https://$host$request_uri;
                  
                  
                  }
                  
                  
                  
                  
                  
                  server {
                  
                  
                    listen 0.0.0.0:443 ssl;
                  
                  
                    server_name server.some.example.com;
                  
                  
                  
                  
                  
                    ssl_certificate /etc/letsencrypt/live/some.example.com/fullchain.pem;
                  
                  
                    ssl_certificate_key /etc/letsencrypt/live/some.example.com/privkey.pem;
                  
                  
                    ssl_trusted_certificate /etc/letsencrypt/live/some.example.com/fullchain.pem;
                  
                  
                  
                  
                  
                    location / {
                  
                  
                      proxy_pass http://some-websocket;
                  
                  
                      proxy_http_version 1.1;
                  
                  
                      proxy_set_header Upgrade $http_upgrade;
                  
                  
                      proxy_set_header Connection $connection_upgrade;
                  
                  
                      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;
                  
                  
                    }
                  
                  
                  }
                  
                  
                
может быть засада, что контейнер пересоздался с другим айпи
Обсуждают сегодня