Nginx在socket.io请求上返回404

Nginx在socket.io请求上返回404,nginx,socket.io,nginx-reverse-proxy,nginx-config,flask-socketio,Nginx,Socket.io,Nginx Reverse Proxy,Nginx Config,Flask Socketio,所以我在这一点上被这段代码卡住了。无论我做什么,nginx都不会让套接字连接发生 我使用flask socketio作为后端,使用Socket IO和react作为前端。我在gcp上和docker一起运行这个。 这里我附上了我的Nginx.conf文件。我从互联网上尝试了多种解决方案,但似乎都不起作用 events { } http { map $http_upgrade $connection_upgrade { default upgrade; '' close

所以我在这一点上被这段代码卡住了。无论我做什么,nginx都不会让套接字连接发生

我使用flask socketio作为后端,使用Socket IO和react作为前端。我在gcp上和docker一起运行这个。 这里我附上了我的Nginx.conf文件。我从互联网上尝试了多种解决方案,但似乎都不起作用

events { }
http {
  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
  }
#   redirect www -> non-www 
   server {
     server_name www.everytutee.com;
     return 301 $scheme://everytutee.com$request_uri;
   }
  # redirect http -> https
   server {
     listen 80;
     server_name everytutee.com;
     return 301 https://everytutee.com$request_uri;
   }
  # read the ssl certificate / key when listening on https
  server {
    listen 443 ssl;
    server_name everytutee.com;

    ssl_certificate /etc/nginx/certs/certificate1.crt;
    ssl_certificate_key /etc/nginx/certs/private.key;
    root /usr/share/nginx/html;
    index index.html;

    server_name $SERVER_NAME;
    access_log /var/log/nginx/data-access.log combined;
    #add_header Access-Control-Allow-Origin *;
    # serve the static files 

    location ~* \.(?:manifest|appcache|html?|xml|json)$ {
      expires -1;
    # I don't usually include a static log
    }
    location ~ \.css {
      include  /etc/nginx/mime.types;
      add_header  Content-Type    text/css;
      try_files $uri =404;
      expires 1y;
      access_log off;
      add_header Cache-Control "public";
    }
    location ~ \.js {
      include  /etc/nginx/mime.types;
      add_header  Content-Type    application/x-javascript;
      try_files $uri =404;
      expires 1y;
      access_log off;
      add_header Cache-Control "public";
    }

    location ~ \.svg {
      include /etc/nginx/mime.types;
      add_header  Content-Type    image/svg+xml;
      try_files $uri =404;
      expires 1y;
      access_log off;
      add_header Cache-Control "public";
    }

    # Any route containing a file extension (e.g. /devicesfile.js)
    location ~ ^.+\..+$ {
      try_files $uri =404;
    }

    # Any route that doesn't have a file extension (e.g. /devices)
    location / {
     # try_files $uri $uri/ /index.html =404;
    }
    # fetch data from proxied server when /api is called

    location /api {
      proxy_pass http://backend:5000/api;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_redirect http://backend:5000/api $scheme://$http_host/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $connection_upgrade;
      proxy_read_timeout 20d;
      proxy_buffering off;
    }

    location /socket.io {
      proxy_pass http://backend:5000/socket.io;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "Upgrade";
      proxy_set_header Host $host;
      proxy_redirect http://backend:5000/api $scheme://$http_host/;
      proxy_cache_bypass $http_upgrade;
      proxy_read_timeout 20d;
    }
  }
}


你有nginx日志吗?我没有从docker那里得到任何nginx日志。您能告诉我如何从docker获取nginx日志吗?这是特定于您如何运行nginx的。如果您没有获取日志,请确保您的nginx配置是正确的wrt日志。一旦你弄清楚如何获取日志,请将它们添加到你的问题中。