nginx 反向代理 常见错误处理

    由内外网分离,只有某台服务的某几个端口是外网可以访问,若需要从外网访问我内网的搭建的服务,此时我们需要借助nginx反向代理功能,nginx作为反向代理服务,通过外网指定端口透射到内网,并代理内网的服务。

    在使用的过程中,出现的几个问题,以及解决方案

一、配置nginx.conf ,导致ip和port被替换成代理的服务名http://neb ,而不是实际的ip和地址

      nginx 反向代理 常见错误处理

       问题:访问122.224.0.0:9400 , 但被转成了http://confluence/admin,导致请求的资源返回404

       解决:proxy_set_header X-Forwarded-Host $host;
                 proxy_set_header X-Forwarded-Server $host;

                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                 proxy_set_header Host $host:$server_port; 

二、nginx代理websocket需要特殊的配置

       proxy_set_header Upgrade $http_upgrade;

       proxy_set_header Connection "upgrade";       

三、nginx代理websocket,返回403错误

      nginx 反向代理 常见错误处理

       权限访问问题

       解决:在配置文件中增加

               proxy_set_header Origin "";

四、nginx反向代理,跨域配置

       add_header Access-Control-Allow-Origin *;  
       add_header Access-Control-Allow-Credentials true;
       add_header Access-Control-Allow-Methods GET,POST,OPTIONS;



注:关于这些没有研究原理,仅记录问题的解决方法