nginx location匹配后proxy_pass給后端server后404 一探
我們先來看如下一段nginx配置
location /zentaopms { proxy_pass http://127.0.0.1:8282; } location /zentaopms { proxy_pass http://127.0.0.1:8282/; } server { listen 8282; root /home/www/zentaopms/www/; location ~ .php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
如上代碼中location節點proxy_pass 后相差一個/
我們來看一個具體demo
step1-我們要訪問一個URL http://somehost/zentaopms/index.php 這其實是禪道的首頁
step2-如我們使用這個配置節
location /zentaopms { proxy_pass http://127.0.0.1:8282; }
那么nginx的錯誤日志里面記錄的都是404的錯誤
step3-為什么會發生404
首先location匹配到后將請求代理到后端8282端口的server,代理到8282 server還是原先的url,此時到了8282 的server,8282server去/home/www/zentaopms/www/zentaopms/下找index.php并由fastcgi協議傳送至php中執行,但index.php是在www目錄下,因此nginx就直接報404錯誤
step4- / ‘斜杠’
使用了proxy_pass http://127.0.0.1:8282/;,在最后多了一個/,代表絕對根目錄,nginx不會將location中匹配到的路徑代理走。因此代理到8282 server時,路徑變成了 http://somehost/index.php,這樣子交由server 8282去執行,可以找到php文件。
author:tomato qq:385817098 tel:******** job:php程序員
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39405.html
摘要:反向代理模塊何為反向代理接收客戶端請求,并把請求交給后端服務器處理,后端服務器處理完成后,響應通過反向代理服務器返回給客戶端。作為反向代理服務器經常要配置一組服務器,以實現負載均衡。 1、nginx反向代理模塊 何為反向代理?接收客戶端請求,并把請求交給后端服務器處理,后端服務器處理完成后,響應通過反向代理服務器返回給客戶端。反向代理可實現局域網中的服務器可被公網中的客戶端訪問,也可實...
摘要:前言業務野蠻生長時期,作為一枚,有運營過比較長的一段時間。根據該是否和匹配絕對是否對前端返回。開發人力不足以重構這個接口,為了不影響調用成功率,想都設置為返回成功之類的狀態碼記錄慢日志為提高接口的運營質量,同時也方便定位一些奇怪的問題。 前言 業務野蠻生長時期,作為一枚op,有運營過nginx比較長的一段時間。期間遇到些小問題,這里簡單做個總結記錄,會不定時更新: 開始扯淡 pr...
摘要:它是一個高性能的和反向代理服務器,同時也可以作為的代理服務器。如果相對域名或參數字符串起作用,可以使用全局變量匹配,也可以使用反向代理。 nginx是什么? nginx是俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的一個十分輕量級的HTTP服務器。它是一個高性能的HTTP和反向代理服務器,同時也可以作為IMAP/POP3/SMTP的代理服務器。ngi...
摘要:語法如果相對域名或參數字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過指令設置如果請求的文件名不存在,則反向代理到。 location正則寫法 一個示例: location = / { # 精確匹配 / ,主機名后面不能帶任何字符串 [ configuration A ] } location / { # 因為所有的地址都以 / 開...
摘要:語法如果相對域名或參數字符串起作用,可以使用全局變量匹配,也可以使用反向代理。不能返回限速,可以通過指令設置如果請求的文件名不存在,則反向代理到。 1. location正則寫法 一個示例: location = / { # 精確匹配 / ,主機名后面不能帶任何字符串 [ configuration A ] } location / { # 因為所有的地址都以 / 開...
閱讀 1560·2023-04-26 01:36
閱讀 2728·2021-10-08 10:05
閱讀 2782·2021-08-05 09:57
閱讀 1542·2019-08-30 15:52
閱讀 1198·2019-08-30 14:12
閱讀 1318·2019-08-30 11:17
閱讀 3103·2019-08-29 13:07
閱讀 2426·2019-08-29 12:35