我是自己的项目在本地上运行的时候正常,但是挂在服务器上的时候就出现了sse问题,打开控制台发现只有预览没有响应。然后就去nginx的项目中配置,但是我建议你们,如果可以还是单独做个转发如下。不要直接将整个项目的接口都设置为sse模式。
我在这里具体讲讲关于sse的配置语句,其他的就不讲了。
关闭缓存:为了确保SSE正常工作,需要禁用Nginx的缓存功能。通过 proxy_buffering off;
和 proxy_cache off;
设置来关闭缓存。
设置连接升级:SSE需要使用持续连接,因此需要设置Upgrade
和Connection
请求头。确保配置中包含 Upgrade $http_upgrade;
和 Connection 'upgrade';
。
调整超时设置:确保设置适当的超时时长,以避免SSE连接时间过短导致异常。您可以根据需要调整 proxy_connect_timeout
和 proxy_read_timeout
等设置。
location / { proxy_pass http://127.0.0.1:8100; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Connection ''; proxy_http_version 1.1; # 重要:确保使用HTTP/1.1协议 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; # 添加以下配置以处理SSE proxy_buffering off; proxy_cache off;}