Nginx 路由轉發和反向代理 location 配置


Nginx 配置的三種方式

  • 第一種直接替換 location 匹配部分

  • 第二種 proxy_pass 的目標地址,默認不帶 /,表示只代理域名,url 和參數部分不會變(把請求的 path 拼接到 proxy_pass 目標域名之后作為代理的URL)

  • 第三種 proxy_pass 的目標地址后增加 /,則表示把 pathlocation 匹配成功的部分剪切掉之后再拼接到 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;
 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM