nginx代理proxy_pass配置去除前缀

阅读数:119 评论数:0

跳转到新版页面

分类

应用软件

正文

方案一:在proxy_pass后面加根路径 /

upstream one {
  server localhost:8088 weight=5;
}

server {
    listen              80;
    server_name         abc.com;
    access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;

    location ^~/user/ {
        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_set_header X-NginX-Proxy true;

        proxy_pass http://one/;
    }

}

^~/user/表示匹配前缀是user的请求,proxy_pass的结尾有/,则会把/user/*后面的路径直接拼接到后面,即移除user。

方案二:使用rewrite

upstream one {
  server localhost:8088 weight=5;
}

server {
    listen              80;
    server_name         abc.com;
    access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;

    location ^~/user/ {
        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_set_header X-NginX-Proxy true;

        rewrite ^/user/(.*)$ /$1 break;
        proxy_pass http://one;
    }

}

注意到proxy_pass结尾没有/,rewrite重写url




相关推荐

语法: rewrite regex replacement [flag] 正则表达式regex . 匹配除换行符以外的的任意字符 ? 0或1次匹配前面的字符 + 1次或多次匹配前面的

配置文件中,http区段中插入&ldquo;server_tokens&nbsp;&nbsp;off;&rdquo;,重新载入配置文件 <pre cla

原因是在nginx配置文件中配置upstream时用了&ldquo;_&rdquo;字符,如上用的tomcat_server,直接报错了。改成tomcatserver,即不使用&ldquo;_&

gzip on; #开启gzip gzip_vary on; gzip_min_length 1k; #

原因是: &nbsp; &nbsp; if 和

server { listen 80; server_name localhost;

相关名词 1、nginx 一个高性能web-server和实施反向代理的软件。 2、lvs Linux Virtual Server,Linux操作系统层面的一个高性能、高可用、负载均衡服务器。 3、

map $http_upgrade $connection_upgrade { default upgrade;

使用不同的端口 server { listen 8088; server_name

^ 匹配字符串开始的位置 $ 匹配字符串结束的位置 .* .匹配任意字符串,*匹配数量0到正无穷 \. 斜杠用来转义,\.匹配. (值1|值2) 或匹配模式 i 不区分大小写