首页 > 解决方案 > Nginx响应与access.log显示200,但浏览器收不到,如何解决?

问题描述

我想用 nginx 代理后端服务。我可以请求数据并返回 truehttp://127.0.0.1:3000/api/carnews 但我想使用 nginx 在 80(或任何端口)上工作,但是当我访问时http://127.0.0.1/api/carnews,后端响应和 nginxaccess.log显示 200 ,但浏览器正在等待处理(邮递员相同)

nginx 版本是 1.17.3

起初,我在docker上使用nginx,然后在主机上,但问题没有解决。我灰了某人,他们也认为配置正确。

我试了很多次!!!!并发现,当响应长度小于 9698 时。我可以在浏览器上接收数据,当长度大于 9697 时,浏览器处于等待状态。多么神奇的长度,我尝试用它在谷歌上搜索,但没有找到 Ps:后端在 docker 上,当我在主机上启动演示时,9698 限制变为 9729............ ......而且http://127.0.0.1:3000/api/carnews长度大于9697时的api直接访问也是可以的。所以我认为后端没有错,可能是nginx配置

nginx.conf

worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    upstream nodejs {
        server 127.0.0.1:3000;
        keepalive 64;
    }
    server {
        listen 80;
        server_name 0.0.0.0;
        root /;
        location ~ ^/(api) {
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_pass http://nodejs;
        }
    }

}

访问日志

127.0.0.1 - - [20/Aug/2019:21:30:46 +0800] "GET /api/carnews HTTP/1.1" 200 9697 "-" "PostmanRuntime/7.13.0" browser 200
127.0.0.1 - - [20/Aug/2019:21:31:11 +0800] "GET /api/carnews HTTP/1.1" 200 9698 "-" "PostmanRuntime/7.13.0" browser pending and fail

标签: nginx

解决方案


推荐阅读