阅读 70

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

本文主要介绍了Nginx 路由转发和反向代理location配置实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Nginx 配置的三种方式

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

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

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

location配置

1
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 这个服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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配置实现的文章就介绍到这了

原文链接:https://blog.csdn.net/weixin_44953227/article/details/112473341


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐