Nginx 路由转发和反向代理location配置实现


Posted in Servers onNovember 11, 2021

Nginx 配置的三种方式

第一种直接替换 location 匹配部分

第二种 proxy_pass 的目标地址,默认不带 /,表示只代理域名,url 和参数部分不会变(把请求的 path 拼接到 proxy_pass 目标域名之后作为代理的URL)

第三种 proxy_pass 的目标地址后增加 /,则表示把 path 中 location 匹配成功的部分剪切掉之后再拼接到 proxy_pass 目标地址

location配置

location [ = | ~ | ~* | ^~ ] uri {...}

uri前面的方括号中的内容是可选项,解释如下:

  • "=":用于标准uri前,要求请求字符串与uri严格匹配,一旦匹配成功则停止
  • "~":用于正则uri前,并且区分大小写
  • "~*":用于正则uri前,但不区分大小写
  • "^~":用于标准uri前,要求Nginx找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配

 

符号 含义
= 精确匹配 
^~ 非正则匹配
~ 正则匹配(区分大小写)
~* 正则匹配(不区分大小写)
!~ 正则不匹配(区分大小写)
!~* 正则不匹配(不区分大小写)
  普通匹配(这里没有符号的时候)

例子

例如下面的配置演示第三种配置方案,当我们访问 http://44.179.118.54:80/shop/xxx 的时候

访问的时候 Nginx 会把 /shop/ 截取掉然后把后面的 path 拼接到 proxy_pass 上

那么我们实际访问的就是: http://44.179.118.54:8007/xxx 这个服务

# shop-service
 # 反向代理shop-service服务
 location ^~ /shop/ {
     #proxy_redirect off;
     #proxy_connect_timeout 60;
     #proxy_read_timeout 60;
     #proxy_send_timeout 60;
     #proxy_buffer_size 4k;
     #proxy_buffers 4 32k;
     #proxy_busy_buffers_size 64k;
     #proxy_temp_file_write_size 64k;
     #proxy_max_temp_file_size 128m;
     proxy_pass http://44.179.118.54:8007/;
     #proxy_set_header X-Real-IP $remote_addr;

     #root /var/www/test/user/
     #index index.html
     #proxy_pass https://www.baidu.com;
 }

到此这篇关于Nginx 路由转发和反向代理location配置实现的文章就介绍到这了,更多相关Nginx 路由转发和反向代理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx配置proxy_pass中url末尾带/与不带/的区别详解
Mar 31 Servers
nginx里的rewrite跳转的实现
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
nginx共享内存的机制详解
Mar 21 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
kubernetes集群搭建Zabbix监控平台的详细过程
Jul 07 Servers
nginx配置指令之server_name的具体使用
Aug 14 Servers
CentOS7设置ssh服务以及端口修改方式
Dec 24 Servers
nginx sticky实现基于cookie负载均衡示例详解
Dec 24 Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
Rhit高效可视化Nginx日志查看工具
You might like
ezSQL PHP数据库操作类库
2010/05/16 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
flask应用部署到服务器的方法
2019/07/12 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
用python进行视频剪辑
2020/11/02 Python
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
医学生个人求职信范文
2013/09/24 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
一篇文章弄懂Python中的内建函数
2021/08/07 Python