nginx反向代理有关端口的问题

今天在做nginx反向代理的时候,出现了一个问题:我们外网访问端口设置的是8088,但是因为外网访问默认端口是80,所以当页面发生重定向的时候,会出现页面访问不到的问题,、

尝试很多办法之后,终于得到了解决,特意分享出来,希望可以帮到有需要的朋友。

server {
        listen       内网端口;     
        server_name  域名a;  

        if ( $content_type ~ xwork2 ){
                return 403;
        }

        if ( $content_type ~ struts2 ){
                return 403;
        }

    client_header_buffer_size    100m;
    client_max_body_size        500m;
    client_body_buffer_size        100m;

        location / {
        index index.jsp index.do index.html index.htm;
                proxy_pass              访问的内网地址;  
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $host;
                #set_real_ip_from       0.0.0.0/24;
                #real_ip_header         X-Real-IP;
                proxy_headers_hash_max_size 51200;
                proxy_headers_hash_bucket_size 6400;
                proxy_redirect     a 
                                   a:8088;
        }
    
    location /web-console/ {}
    location /jmx-console/ {}
    location /invoker/ {}
}

这里需要配置一下proxy_redirect当上游服务器返回的响应是重定向或刷新请求(如HTTP响应码是301或者302)时,proxy_redirect可以重设HTTP头部的location或refresh字段

 

更多资料可以参考:http://blog.51cto.com/blief/1739178

 

posted @ 2018-03-12 11:46  筱小Q  阅读(357)  评论(0编辑  收藏  举报