nginx url重写以实现反向代理 [英] nginx url rewrite for reverse proxy
本文介绍了nginx url重写以实现反向代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在端口80上有一个nginx,在端口8080上有一个tomcat,配置为上游.
I have an nginx on port 80 and a tomcat on port 8080 configured as upstream.
tomcat中的war应用程序收听/pwm.
The war application in tomcat listen to /pwm.
我想将nginx配置为tomcat的反向代理,并将URL"/"重写为"/pwm".
I would like to configure nginx to a reverse proxy for tomcat and rewrite the url "/" to "/pwm".
示例: 用户在浏览器中键入"web.noc.local",nginx将该URL重写为web.noc.local/pwm并重定向到端口8080上的tomcat.
example: user types "web.noc.local" in browser and nginx rewrites the url to web.noc.local/pwm and redirects to tomcat on port 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时,什么也没有发生,只有空白屏幕.
now when I open the url the, nothing happens, only a blank screen.
寻求帮助.
推荐答案
好,我为我找到了一个解决方案:
Ok, I found a solution for me:
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;
}
这篇关于nginx url重写以实现反向代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文