nginx 响应服务器静态,405 Not Allowed,nginx静态文件响应post请求
說(shuō)明:
nginx不允許向靜態(tài)文件提交post方式的請(qǐng)求,否則會(huì)返回“HTTP/1.1 405 Method not allowed”錯(cuò)誤,至于原來(lái)還沒(méi)去研究。顯示如下
```
[root@gaingreat blort]# curl -d 1=1 www.coolnull.com/blort/1.json
405 Not Allowed405 Not Allowed
nginx
```
解決:解決方法有三種
## 一. 重定向405錯(cuò)誤碼到200
在nginx server{}里面添加以下內(nèi)容,root為站點(diǎn)的根目錄
```
location ~ (.*\.json) {
root /data/web/coolnull.com/www;
error_page 405 =200 $1;
}
```
`nginx reload`下即可
```
[root@gaingreat blort]# curl -d 1=1 www.coolnull.com/blort/1.json //這樣就可以post數(shù)據(jù)給靜態(tài)文件了!!
111
```
## 二. 轉(zhuǎn)換靜態(tài)文件接收的POST請(qǐng)求到GET方法去,一種聽(tīng)說(shuō)不完美但也可以用的方法
```
upstream static_backend {
server localhost:80;
}
server {
listen 80;
...
error_page 405 =200 @405;
location @405 {
root /data/web/coolnull.com/www;
proxy_method GET;
proxy_pass http://static_backend;
}
}
```
## 三. 修改nginx源碼,這個(gè)真心沒(méi)試過(guò)!
源碼文件位于 `/nginx` 源碼目錄 `/src/http/modules/ngx_http_static_module.c` ,找到如下代碼:
```
if (r->method & NGX_HTTP_POST) {
return NGX_HTTP_NOT_ALLOWED;
}
```
整段注釋掉,然后重新編譯 `make`,不需要`make install`,把編譯生成的`nginx`文件復(fù)制到`sbin`下的`nginx`文件,重啟`nginx`即可。
總結(jié)
以上是生活随笔為你收集整理的nginx 响应服务器静态,405 Not Allowed,nginx静态文件响应post请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用线程——创建线程
- 下一篇: 智能小程序档案馆——如何给“包”瘦身