Nginx在socket.io请求上返回404
所以我在这一点上被这段代码卡住了。无论我做什么,nginx都不会让套接字连接发生 我使用flask socketio作为后端,使用Socket IO和react作为前端。我在gcp上和docker一起运行这个。 这里我附上了我的Nginx.conf文件。我从互联网上尝试了多种解决方案,但似乎都不起作用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
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日志。一旦你弄清楚如何获取日志,请将它们添加到你的问题中。