Loading...
nginx反向代理转发端口问题

Linux操作笔记 2016/01/12 Linux , Nginx

在使用nginx进行反向代理,转发指定的请求的时候没有配置端口转发,导致在程序里面获取不到端口

没有端口转发的配置:

upstream server {
    ip_hash;
    server 192.168.1.100:8080;
}

server {
    listen       8080;
    server_name  server ;

    charset utf-8;

    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass    http://server ;
        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_connect_timeout 1000;

       # proxy_read_timeout 1000;
       # proxy_send_timeout 1000;
       # proxy_buffer_size 16k;
       # proxy_buffers 4 32k;
       # proxy_busy_buffers_size 64k;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/nginx/html;
    }

}

使用该配置,在服务端通过JAVA代码“String uri = request.getRequestURL().toString();”获取URL地址如下,没有端口

http://192.168.20.2/console/security_check


需要将配置

proxy_set_header   Host             $host;

改为

proxy_set_header   Host             $host:$server_port;;


重新在服务端通过JAVA代码“String uri = request.getRequestURL().toString();”获取URL地址如下,有端口

http://192.168.20.2:8080/console/security_check



Comments