一次悲催的nginx转发白屏经历

Posted datagd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次悲催的nginx转发白屏经历相关的知识,希望对你有一定的参考价值。

背景

公司还有一个学习平台,由于公网地址问题,所以想用nginx转发一下,首先后端地址访问时没有问题的,一切正常。

用nginx转发后,访问nginx代理地址悲催了,出现了白屏。

排查过程

首先贴出来我的nginx配置:

server {
    listen 9005;
    port_in_redirect off;
    index index.jsp index.html;

    location / {
                proxy_pass              http://111.111.111.111:9005;
                proxy_buffers           256 16k;
                proxy_redirect          off;
                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        REMOTE-HOST $remote_addr;
                client_max_body_size    300m;
                client_body_buffer_size 128k;
                proxy_connect_timeout   5;
                proxy_send_timeout      600;
                proxy_read_timeout      600;
                proxy_buffer_size       16k;
                proxy_busy_buffers_size 128k;
                proxy_temp_file_write_size 64k;
                proxy_next_upstream  http_404;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

查看nginx报错日志:

ginx代理后的默认http版本是1.0.、如果原始请求是长连接或者分块传递,需要加上http1.1的参数,

nginx的location模块里面加上proxy_http_version 1.1估计可以了

添加如下,两行代码:

proxy_http_version 1.1;  #开启对http1.1支持
proxy_set_header Connection "";  #设置Connection为空串,以禁止传递头部到后端

 

以上是关于一次悲催的nginx转发白屏经历的主要内容,如果未能解决你的问题,请参考以下文章

悲催的劳动节

从求生之路到喋血复仇 他们创造了打丧尸时代 也是悲催的倒霉蛋

悲催的信息学考

nginx的记录配置心得

json代码驾照考题批量加入MySQL数据库 ps.executeUpdate()永远只能悲催的加一条数据 去掉id主键自增 for 与 foreach

SVN 我刚刚用SVN覆盖更新了我本地的代码,悲催的是,我有一些新写的代码忘记提交了,直接被覆盖了!!!!