Nginx常见问题解决


1、nginx 或者tomcat 下 X-Content-Type-Options、X-XSS-Protection、Content-Security-Pol安全配置

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

参考:https://blog.csdn.net/weixin_41986096/article/details/108319848

2、nginx: [emerg] unknown "connection_upgrade" variable解决与思考

   http {
    map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
   }

    server {
        location / {
                    #…
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection $connection_upgrade;
            }
        }
}

参考:https://segmentfault.com/a/1190000018712908

3、Nginx: Connection reset by peer 错误定位

https://blog.csdn.net/zzhongcy/article/details/89090193

4、nginx设置反向代理,获取真实客户端ip

upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡。
upstream abc.com {
        server 127.0.0.1:8080;
        server 127.0.0.1:80;
        server 127.0.0.1:8000;
}

server {
        listen 80;
        server_name www.test.com;
        location / {
                proxy_pass http://abc.com;
                proxy_set_header    Host             $host;#保留代理之前的host
                proxy_set_header    X-Real-IP        $remote_addr;#保留代理之前的真实客户端ip
                proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip
                proxy_redirect      default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
        }
}

 5、302

location = /iot {
            return 302 /iot/;
        }

        location /iot/ {
            root   html;
            index  index.html index.htm;

            proxy_pass  http://192.168.131.63:30104/;
            proxy_connect_timeout 300s;
            proxy_send_timeout 300s;
            proxy_read_timeout 300s;


            proxy_buffer_size 64k;
            proxy_buffers   32 32k;
            proxy_busy_buffers_size 128k;
            proxy_set_header X-Forwarded-Proto https;

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

6、使用nginx 代理,后端通过request获取header自定义头信息为null问题

使用nginx 代理,后端通过request 方式获取自定义header头信息一直获取不到,后来百度到nginx有个坑,自定义header参数名称不能带下横线,默认被过滤了。

只要在nginx 的 nginx.conf 配置文件中加入如下代码就可以了

 

underscores_in_headers on;

默认是 off;
参考:https://blog.csdn.net/keizhige/article/details/106055325

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM