首页 帮助中心 常见问题 nginx反向代理配置去除前缀的方法
nginx反向代理配置去除前缀的方法
时间 : 2024-07-19 15:46:24 编辑 : 华纳云 阅读量 : 658

在nginx中如果想配置反项代理且去除URL前缀,用location 指令来匹配带有前缀的请求,再使用 proxy_pass 指令将请求转发到后端服务器,并在 proxy_pass 指令中去除前缀。华纳云为大家分享以下示例配置:

假设有一个后端服务器运行在 http://backend_server,并且想将 /api/v1/ 前缀的请求转发到这个后端服务器,同时去除 /api/v1/ 前缀。

首先,需要配置 Nginx打开你的网站配置文件:

sudo nano /etc/nginx/sites-available/your_domain

在 server 块中添加以下配置:

server {

    listen 80;

    server_name your_domain www.your_domain;

    # 静态文件配置

    location / {

        root /var/www/your_domain/html;

        index index.html index.htm;

        try_files $uri $uri/ =404;

    }

    # 反向代理配置

    location /api/v1/ {

        proxy_pass http://backend_server/;

        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-Forwarded-Proto $scheme;

    }

}

以上配置中

location /api/v1/ 匹配带有 /api/v1/ 前缀的请求。

proxy_pass http://backend_server/; 将请求转发到后端服务器,并且会去除匹配的

/api/v1/ 前缀。

再来,就是需要测试和重载nginx。测试nginx的配置正确性

sudo nginx -t

重新加载nginx以应用新配置

sudo systemctl reload nginx

假设完整的配置文件为:

server {

    listen 80;

    server_name your_domain www.your_domain;

    # 静态文件配置

    location / {

        root /var/www/your_domain/html;

        index index.html index.htm;

        try_files $uri $uri/ =404;

    }

    # 反向代理配置

    location /api/v1/ {

        proxy_pass http://backend_server/;

        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-Forwarded-Proto $scheme;

    }

}

其中,用户开始访问 http://your_domain/api/v1/some/path 时,Nginx 将请求转发到 http://backend_server/some/path,并去除 /api/v1/ 前缀。

华纳云 推荐文章
nginx中请求如何反向代理到tomcat应用服务器上 CentOS 7 中使用 cPanel 配置 Nginx 反向代理
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持