nginx?405?not?allowed問題三種解決方法
一、問題描述
首先看到的頁(yè)面是nginx返回的頁(yè)面,得知錯(cuò)誤要從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>
二、問題原因
因?yàn)檫@里請(qǐng)求的靜態(tài)文件采用的是post方法,nginx是不允許post訪問靜態(tài)資源。題話外,試著post訪問了下www.baidu.com發(fā)現(xiàn)頁(yè)面也是報(bào)錯(cuò),可以試著用get方式訪問
三、解決辦法(三種)
(1)將405錯(cuò)誤指向成功(我采用的這種方法解決的問題)
靜態(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這個(gè)參數(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文件復(fù)制到sbin下 重啟nginx
(3)修改錯(cuò)誤界面指向
upstream static_backend {
server localhost:80;
}
server {
listen 80;
# ...
error_page 405 =200 @405; // 注意 405后面是要接空格的,而不是因?yàn)榇蝈e(cuò)了字符
location @405 {
root /srv/http;
proxy_method GET;
proxy_pass http://static_backend;
}
}(4)詳細(xì)描述
405 Method Not Allowed是一個(gè)HTTP 響應(yīng)狀態(tài)代碼,表示服務(wù)器接收并識(shí)別了指定的請(qǐng)求HTTP 方法,但服務(wù)器拒絕了請(qǐng)求資源的特定方法。此代碼響應(yīng)確認(rèn)請(qǐng)求的資源有效且存在,但客戶端在請(qǐng)求期間使用了不可接受的 HTTP 方法。
四、Nginx $request_uri和$uri詳解
$uri
nginx中的$uri記錄的是執(zhí)行一系列內(nèi)部重定向操作后最終傳遞到后端服務(wù)器的URL
包含請(qǐng)求的文件名和路徑,不包含“?”或“#”等參數(shù)。
完整URL鏈接:http://www.alipay.com/alipay/index.html
$uri:/alipay/index.html
$request_uri
$request_uri記錄的是當(dāng)前請(qǐng)求的原始URL(包含參數(shù)),如果沒有執(zhí)行內(nèi)部重定向操作,request_uri去掉參數(shù)后的值和uri的值是一樣的。在線上環(huán)境中排查問題是,如果在后端服務(wù)器中看到的請(qǐng)求和Nginx中存放的request_uri無法匹配,可以考慮去uri里邊進(jìn)行查找。
包含請(qǐng)求的文件名和路徑及所有參數(shù)
完整URL鏈接:http://www.alipay.com/alipay/index.html
$request_uri:/alipay/index.html#參數(shù)
總結(jié)
到此這篇關(guān)于nginx 405 not allowed問題三種解決方法的文章就介紹到這了,更多相關(guān)nginx 405 not allowed問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入理解Nginx中Server和Location的匹配邏輯
這篇文章主要介紹了深入理解Nginx中Server和Location的匹配邏輯,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03
Ubuntu?22.04.1?LTS?編譯安裝?nginx-1.22.1的配置過程
Ubuntu安裝Nginx有兩種方式,一種是通過命令的方式,這種方式安裝的Nginx版本低,之前漏掃掃出來Nginx版本低,需要升級(jí)所以現(xiàn)在用編譯的方式安裝版本高點(diǎn)的,本文介紹Ubuntu22.04.1?LTS編譯安裝nginx1.22.1的配置過程,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-01-01
Nginx配置為HTTPS的完整步驟(支持?SSL/TLS?加密)
Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,是運(yùn)維中十分常用的中間件,HTTPS協(xié)議簡(jiǎn)單來說就是HTTP協(xié)議和SSL/TLS協(xié)議的組合,這篇文章主要介紹了Nginx配置為HTTPS(支持?SSL/TLS?加密)的相關(guān)資料,需要的朋友可以參考下2025-11-11
Nginx下WordPress鏈接(url偽靜態(tài))301永久重定向?qū)崿F(xiàn)方法
在幾個(gè)blog程序中折騰的結(jié)果,導(dǎo)致url連續(xù)二次變化。這是第三次了。 nginx 通過rewrite 使用 permanent; 參數(shù) 成301永久url重定向2012-09-09
Nginx流量同時(shí)轉(zhuǎn)發(fā)多后端(流量鏡像分發(fā))
在需要同時(shí)將請(qǐng)求轉(zhuǎn)發(fā)至多個(gè)后端服務(wù)的場(chǎng)景中,Nginx的mirror模塊提供了流量鏡像分發(fā)的功能,本文就來介紹一下Nginx流量同時(shí)轉(zhuǎn)發(fā)多后端(流量鏡像分發(fā)),感興趣的可以了解一下2024-10-10
nginx利用lua語(yǔ)言實(shí)現(xiàn)軟waf的示例代碼
這篇文章主要介紹了nginx利用lua語(yǔ)言實(shí)現(xiàn)軟waf,文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03
prometheus監(jiān)控nginx的實(shí)現(xiàn)步驟
本文主要介紹了prometheus監(jiān)控nginx的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-05-05
Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程
這篇文章主要介紹了Nginx+SSL+Node.js運(yùn)行環(huán)境配置教程,本文用反向代理的方式代理基于Node.js的Web應(yīng)用,需要的朋友可以參考下2014-09-09

