Nginx 路由转发和反向代理location配置实现
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 路由转发和反向代理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
nginx强制使用https访问的方法(http跳转到https)
这篇文章主要介绍了nginx强制使用https访问的方法(http跳转到https),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-01-01nginx中(13: Permission denied)权限问题的解决办法
"nginx 13: Permission denied" 错误通常表示nginx进程没有足够的权限来访问特定的文件或目录,本文就来介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下2023-09-09503 service unavailable错误解决方案讲解
这篇文章主要介绍了503 service unavailable错误解决方案讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下2021-08-08
最新评论