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 配置 - Python技术站