2014-01-13 220 views
4

我有一個端口80上的nginx和端口8080上的tomcat配置爲上游。反向代理的nginx url重寫

tomcat中的war應用程序li​​sten/pwm。

我想將nginx配置爲tomcat的反向代理,並將URL「/」改寫爲「/ pwm」。

例如: 用戶鍵入 「web.noc.local」 在瀏覽器和nginx的重寫URL來web.noc.local/PWM和重定向到tomcat的8080端口

我nginx的配置:

upstream pwm_server { 
    server 127.0.0.1:8080 fail_timeout=0; 
} 

server { 
    listen  80; 
    server_name web.noc.local;  
    access_log /var/log/nginx/log/web.noc.local.access.log main; 
    error_log /var/log/nginx/log/web.noc.local.error.log;  
    location/{ 
     if ($is_args != "") { 
      rewrite "^$" /pwm break; 
      expires  7d; 
      proxy_pass http://pwm_server; 
     }   
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr;  
     proxy_max_temp_file_size 0;  
     proxy_buffering off; 
     proxy_connect_timeout 30; 
     proxy_send_timeout 30; 
     proxy_read_timeout 30; 
     proxy_pass http://pwm_server; 
    } 
} 

現在當我打開url時,沒有任何反應,只有一個空白的屏幕。

thx尋求幫助。

回答

3

好吧,我找到了我一個解決方案:

location/{ 
    rewrite^http://web.noc.local/pwm/ last; 
} 

location /pwm { 

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 

    proxy_max_temp_file_size 0;  
    proxy_buffering off; 
    proxy_connect_timeout 30; 
    proxy_send_timeout 30; 
    proxy_read_timeout 30; 
    proxy_pass http://pwm_server; 
}