Nginx代理proxy pass配置去除指定前缀

188次阅读
没有评论

共计 647 个字符,预计需要花费 2 分钟才能阅读完成。

Nginx 代理 proxy pass 配置去除前缀

使用 Nginx 做代理的时候,访问 mate98.cn/path, 要求转发到 127.0.0.1:3000/
可以使用 Nginx rewrite进行配置将 mate98.cn/path/getparams 的请求代理到 127.0.0.1:3000/ 并去掉 path 前缀,并将剩余参数拼接到转发地址后:

perlCopy code
server {
    listen 80;
    server_name mate98.cn;

    location /path {
        # 使用正则表达式提取参数,并拼接到转发地址后面
        # 例如,/path/getparams?a=1&b=2 转发到 http://127.0.0.1:3000/?a=1&b=2
        rewrite ^/path/getparams(.*)$ $1 break;
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

上述配置中,rewrite 指令使用正则表达式提取 /path 后的参数,并拼接到转发地址后面。例如,/path?a=1&b=2 将被重写为 ?a=1&b=2,然后请求将被代理到 http://127.0.0.1:3000/?a=1&b=2proxy_pass 指令将请求代理到 http://127.0.0.1:3000proxy_set_header 指令设置请求头,以便后端服务器正确识别客户端的 IP 地址和主机名。

正文完
  0
领导、我小江🎉
版权声明:本站原创文章,由 领导、我小江🎉 2023-02-22发表,共计647字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)