nginx?405?not?allowed問題三種解決方法
一、問題描述
首先看到的頁面是nginx返回的頁面,得知錯誤要從nginx上來解決
<html> <head><title>405 Not Allowed</title></head> <body bgcolor="white"> <center><h1>405 Not Allowed</h1></center> <hr><center>nginx/1.0.11</center> </body> </html>
二、問題原因
因為這里請求的靜態(tài)文件采用的是post方法,nginx是不允許post訪問靜態(tài)資源。題話外,試著post訪問了下www.baidu.com發(fā)現(xiàn)頁面也是報錯,可以試著用get方式訪問
三、解決辦法(三種)
(1)將405錯誤指向成功(我采用的這種方法解決的問題)
靜態(tài)server下的location加入 error_page 405 =200 $uri;
location / { root /usr/share/nginx/html/cashier; try_files $uri $uri/ /index.html; index index.html index.htm; error_page 405 =200 $request_uri; // $request_uri這個參數(shù)的含義下面有解釋 }
(2)修改nginx下src/http/modules/ngx_http_static_module.c文件
if (r->method & NGX_HTTP_POST) { return NGX_HTTP_NOT_ALLOWED; }
以上這一段注釋掉,重新編譯,將make install編譯生成的nginx文件復制到sbin下 重啟nginx
(3)修改錯誤界面指向
upstream static_backend { server localhost:80; } server { listen 80; # ... error_page 405 =200 @405; // 注意 405后面是要接空格的,而不是因為打錯了字符 location @405 { root /srv/http; proxy_method GET; proxy_pass http://static_backend; } }
(4)詳細描述
405 Method Not Allowed是一個HTTP 響應狀態(tài)代碼,表示服務器接收并識別了指定的請求HTTP 方法,但服務器拒絕了請求資源的特定方法。此代碼響應確認請求的資源有效且存在,但客戶端在請求期間使用了不可接受的 HTTP 方法。
四、Nginx $request_uri和$uri詳解
$uri
nginx中的$uri
記錄的是執(zhí)行一系列內部重定向操作后最終傳遞到后端服務器的URL
包含請求的文件名和路徑,不包含“?”或“#”
等參數(shù)。
完整URL鏈接:http://www.alipay.com/alipay/index.html
$uri:/alipay/index.html
$request_uri
$request_uri
記錄的是當前請求的原始URL(包含參數(shù)),如果沒有執(zhí)行內部重定向操作,request_uri
去掉參數(shù)后的值和uri
的值是一樣的。在線上環(huán)境中排查問題是,如果在后端服務器中看到的請求和Nginx中存放的request_uri
無法匹配,可以考慮去uri
里邊進行查找。
包含請求的文件名和路徑及所有參數(shù)
完整URL鏈接:http://www.alipay.com/alipay/index.html
$request_uri:/alipay/index.html#參數(shù)
總結
到此這篇關于nginx 405 not allowed問題三種解決方法的文章就介紹到這了,更多相關nginx 405 not allowed問題內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nginx如何實現(xiàn)同個ip、端口訪問不同的項目(以路徑區(qū)分項目)
這篇文章主要介紹了nginx如何實現(xiàn)同個ip、端口訪問不同的項目(以路徑區(qū)分項目),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12nginx調用php-fpm出錯解決方法和nginx配置詳解
這篇文章介紹了nginx調用php-fpm出錯的解決方法,最后給出了nginx配置方法,需要的朋友可以參考下2014-03-03keepalived+nginx實現(xiàn)網站高可用性
本文主要介紹了keepalived+nginx實現(xiàn)網站高可用性,包含配置Keepalived實現(xiàn)雙主熱備集群架構,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-02-02