nginx url重写以实现反向代理 [英] nginx url rewrite for reverse proxy

查看:1409
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆