nginx反向代理配置如何去除前缀

发布时间 - 2023-05-11 00:00:00    点击率:

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法:

方法一:加"/"

server {
    listen              8000;
    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://user/;
    }
 
    location ^~/order/ {
        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://order/;
    }
}

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

方法二:rewrite

upstream user {
 server localhost:8089 weight=5;
}
upstream order {
 server localhost:8090 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://user;
 }
 
 location ^~/order/ {
 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 ^/order/(.*)$ /$1 break;
 proxy_pass http://order;
 }
}

proxy_pass结尾没有/, rewrite重写了url。


# nginx  # 原封不动  # 只会  # 写了  # 则会  # 移除  # 转发给  # 则需  # 来访问  # data  # log 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript如何实现音频处理_Web Audio API如何工作?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Bootstrap整体框架之JavaScript插件架构  音响网站制作视频教程,隆霸音响官方网站?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  java中使用zxing批量生成二维码立牌  如何在IIS管理器中快速创建并配置网站?  zabbix利用python脚本发送报警邮件的方法  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  详解jQuery停止动画——stop()方法的使用  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  敲碗10年!Mac系列传将迎来「触控与联网」双革新  高防服务器如何保障网站安全无虞?  利用vue写todolist单页应用  php打包exe后无法访问网络共享_共享权限设置方法【教程】  详解vue.js组件化开发实践  网站制作软件免费下载安装,有哪些免费下载的软件网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  php结合redis实现高并发下的抢购、秒杀功能的实例  深圳网站制作平台,深圳市做网站好的公司有哪些?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  EditPlus中的正则表达式 实战(1)  LinuxShell函数封装方法_脚本复用设计思路【教程】  高端建站如何打造兼具美学与转化的品牌官网?  简历在线制作网站免费版,如何创建个人简历?  网站制作报价单模板图片,小松挖机官方网站报价?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Python图片处理进阶教程_Pillow滤镜与图像增强  如何安全更换建站之星模板并保留数据?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Internet Explorer官网直接进入 IE浏览器在线体验版网址  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Linux网络带宽限制_tc配置实践解析【教程】  微信小程序 scroll-view组件实现列表页实例代码  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Mybatis 中的insertOrUpdate操作  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  html如何与html链接_实现多个HTML页面互相链接【互相】  Laravel如何自定义分页视图?(Pagination示例)  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  如何在景安云服务器上绑定域名并配置虚拟主机?