小工具知识网

当前位置: 首页 > 行业知识 > Nginx快速入门:nginx各类转发、代理配置详解|location

行业知识

Nginx快速入门:nginx各类转发、代理配置详解|location

2026-11-02 04:00:14 来源:互联网转载

我们上述讲解了匹配模式的书写,匹配到了还要进行合理的转发,而转发模式的控制就是通过proxy_pass, 下面我们来看看proxy_pass的语法结构

2.1 proxy_pass 的四种配置写法

首先我们来回顾下proxy_pass的语法:

 proxy_pass url;

转发地址url分为带/和不带/,带杠的为绝对根路径,会直接在路径后拼接上不带匹配路径的转发地址;如果没有杠表示相对路径,则会将匹配路径也带上进行转发,我们举例说明:

location /user/ {    proxy_pass url;}

访问路径固定为:http://192.168.244.21/user/index.html

  • 1、当proxy_pass http://192.168.244.21:8080/ 时

    会跳转至http://192.168.244.21:8080/index.html,带/表示绝对路径,匹配路径/user/会被消除

    • 2、当proxy_pass http://192.168.244.21:8080 时

      会跳转至http://192.168.244.21:8080/user/index.html,相对路径,匹配路径/user/不会被消除

      • 3、当proxy_pass http://192.168.244.21:8080/admin/ 时

        会跳转至http://192.168.244.21:8080/admin/index.html,匹配路径/user/被消除,并且保留转发路径里的/admin/

        • 4、当proxy_pass http://192.168.244.21:8080/admin 时

          会跳转至http://192.168.244.21:8080/adminindex.html,因为proxy_pass中也包含了/了,表示绝对路径,所以/user/会被消除

          总言之记住一点,带/表示绝对路径,请求路径中的匹配路径(location)转发时会被消除

          2.2 server和location模块中proxy_pass的区别

          在server模块中的proxy_pass只需要配置ip(或域名)和端口,相当于端口转发;而在location中的proxy_pass,也就是我们更加常用的,可以配置域名、ip、端口、uri,此外还需要提供协议:http或https,相当于地址转发。

          配置语法如下:

          server {    listen 80;    proxy_responses 1;    proxy_timeout 20s;    proxy_pass xxx.com:8080;    # proxy_pass 192.168.244.21:8080;location /user/ {        proxy_pass http://192.168.244.21:8081;    }}

          3. location匹配案例练习

          • 1、匹配匹配以.jsp结尾的路径,将其转发至端口为8080的tomcat服务

            解析:要匹配以.jsp结尾,只需要默认写上.jsp即可,但是需要注意.是单一字符通配符,所以要添加\做转义,才能表示成本身点的含义

            server {    listen 81;    location ~ (.*)\.jsp {       proxy_pass http://localhost:8080;       proxy_set_header HOST $host;       proxy_http_version 1.1;    }}

            测试:

            访问ip:81/index.jsp,可以看到成功转发到8080端口的tomcat了(这里提前修改了首页,将端口显示在tomcat首页了)

            去除点号访问,发现访问不通了,测试通过

            • 2、三台不同的tomcat,端口分别为8080,8081,8083,分别承担不同的业务,将路径以/user开头的请求转发至tomcat 8080, 以/order开头的转发至tomcat 8081, 路径包含/product跳转到tomcat 8083的首页

              解析:

              该需求实际上一共有两部分,/user,/order的配置都类似,我们使用^~即可,只有8083的需要用到的是跳转,也就是重定向到tomcat 8083首页,这里需要用到return,大家暂时知道即可,下一章我们详细讲解重定向的配置。

              server {    listen 81;    location ^~ /user {       proxy_pass http://localhost:8080/;**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。****深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!****因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**![img](https://m.xiaogongju.com.cn/uploads/202511/07/6c25fe7f894f7578.webp)![img](https://m.xiaogongju.com.cn/uploads/202511/07/adb64694b42b94fb.webp)![img](https://m.xiaogongju.com.cn/uploads/202511/07/7a763c5aca169385.webp)![img](https://m.xiaogongju.com.cn/uploads/202511/07/a8c893f6f61d6d0c.webp)![img](https://m.xiaogongju.com.cn/uploads/202511/07/1d931afe4d4890dd.webp)**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!****由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新****如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**![img](https://m.xiaogongju.com.cn/uploads/202511/07/eb4b5c6bb0079ca0.webp)为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**![](https://m.xiaogongju.com.cn/uploads/202511/07/893adbf294b2d7a4.webp)本份面试集锦涵盖了*   **174 道运维工程师面试题***   **128道k8s面试题***   **108道shell脚本面试题***   **200道Linux面试题***   **51道docker面试题***   **35道Jenkis面试题***   **78道MongoDB面试题***   **17道ansible面试题***   **60道dubbo面试题***   **53道kafka面试***   **18道mysql面试题***   **40道nginx面试题***   **77道redis面试题***   **28道zookeeper****总计 1000+ 道面试题, 内容 又全含金量又高***   **174道运维工程师面试题**> 1、什么是运维?> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?> 3、现在给你三百台服务器,你怎么对他们进行管理?> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?> 7、Tomcat和Resin有什么区别,工作中你怎么选择?> 8、什么是中间件?什么是jdk?> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?> 10、什么叫CDN?> 11、什么叫网站灰度发布?> 12、简述DNS进行域名解析的过程?> 13、RabbitMQ是什么东西?> 14、讲一下Keepalived的工作原理?> 15、讲述一下LVS三种模式的工作过程?> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?> 17、如何重置mysql root密码?**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!****AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**t/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

上一篇:老服务器插件怎么删除掉?

下一篇:购买了戴尔服务器怎么激活?