我在端口80上有一个nginx,在端口8080上有一个配置为上游的tomcat。
tomcat中的war应用程序听/ pwm。
我想将nginx配置为tomcat的反向代理,并将url“/”重写为“/ pwm”。
例如: 用户在浏览器中键入“web.noc.local”,nginx将URL重写为web.noc.local / pwm,并在端口8080上重定向到tomcat。
我的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;
}
}
现在当我打开网址时,没有任何反应,只有一个空白屏幕。
请求帮助。
答案 0 :(得分:4)
好的,我找到了一个解决方案:
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;
}