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的rewrite模块详解
Mar 31 Servers
浅谈Nginx 中的两种限流方式
Mar 31 Servers
win10安装配置nginx的过程
Mar 31 Servers
Nginx反向代理至go-fastdfs案例讲解
Aug 02 Servers
Nginx部署vue项目和配置代理的问题解析
Aug 04 Servers
nginx lua 操作 mysql
May 15 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
nginx访问报403错误的几种情况详解
Jul 23 Servers
win10搭建配置ftp服务器的方法
Aug 05 Servers
nginx中proxy_pass各种用法详解
Apache POI的基本使用详解
nginx实现动静分离的方法示例
Nginx内网单机反向代理的实现
Nov 07 #Servers
zabbix自定义监控nginx状态实现过程
总结高并发下Nginx性能如何优化
Rhit高效可视化Nginx日志查看工具
You might like
PHP下escape解码函数的实现方法
2010/08/08 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
PHP多文件上传实例
2015/07/09 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
JS实现吸顶特效
2020/01/08 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
分享python数据统计的一些小技巧
2016/07/21 Python
python 基础教程之Map使用方法
2017/01/17 Python
python多进程控制学习小结
2018/10/31 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
python math模块的基本使用教程
2021/01/16 Python
酒吧副总经理岗位职责
2013/12/10 职场文书
小学领导班子对照材料
2014/08/23 职场文书
孔庙导游词
2015/02/04 职场文书
工作简历自我评价
2015/03/11 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript