说明:
nginx不允许向静态文件提交post方式的请求,否则会返回“HTTP/1.1 405 Method not allowed”错误,至于原来还没去研究。显示如下
```
[root@gaingreat blort]# curl -d 1=1 www.coolnull.com/blort/1.json
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx</center>
</body>
</html>
```
解决:解决方法有三种
## 一. 重定向405错误码到200
在nginx server{}里面添加以下内容,root为站点的根目录
```
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数据给静态文件了!!
111
```
## 二. 转换静态文件接收的POST请求到GET方法去,一种听说不完美但也可以用的方法
```
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源码,这个真心没试过!
源码文件位于 `/nginx` 源码目录 `/src/http/modules/ngx_http_static_module.c` ,找到如下代码:
```
if (r->method & NGX_HTTP_POST) {
return NGX_HTTP_NOT_ALLOWED;
}
```
整段注释掉,然后重新编译 `make`,不需要`make install`,把编译生成的`nginx`文件复制到`sbin`下的`nginx`文件,重启`nginx`即可。
- centos
- 安装工具
- 安装nginx
- 安装PHP5
- 安装PHP7.0.1
- 安装PHP7.0.8
- 安装redis
- redis允许远程访问
- 安装php之redis扩展
- 安装mysql
- 配置nginx虚拟机绑定域名
- xdebug下载配置
- phpStorm远程调试配置
- 报错解决:安装PHP7解决问题方法
- 报错解决:xdebug-解决问题
- yum丢失的解决办法
- CentOS下安装JDK的四种方法
- workman
- 某服务器配置情况
- 安装PHP7.2.17
- 安装PHP7.1.27
- 安装MongoDB
- ubuntu
- mac
- window
- phpstrom+wamp+xdebug
- mysql
- MySql创建本地用户和远程用户 并赋予权限
- 自建主从复制-mycat
- 数据库优化
- 阿里云mysql主从复制
- 报错解决
- SQL分析
- group by
- Mysql定时备份数据脚本
- MySQL数据库远程连接开启方法
- 启动报错systemctl status
- 日志导出
- mysq进程
- mysql查询正在执行的进程
- 命令
- nginx
- 安装GIT
- access.log
- error.log分析
- 500 Internal Server Error错误
- 502解决方案
- 405 Not Allowed,nginx静态文件响应post请求
- Linux基本操作
- 创建用户
- chmod命令详细用法设置文件的权限
- chown命令
- chgrp命令:改变文件的群组
- Linux 设置定时任务crontab命令
- 其他问题
- Win10 Subsystem Linux : Ubuntu 的root密码
- 安全问题
- PHP安全设置
- redis
- 安装
- 安装2.8.17
- 问题
- 日志分析
- an upstream response is buffered to a temporary file
- too many open files
- worker_connections are not enough
- recv() failed
- 日志
- 系统日志
- apache访问日志与错误日志
- nginx访问日志与错误日志
- php错误日志
- php-fpm慢日志
- mysql慢日志
- 服务器优化
- php-fpm进程数优化
- 服务器安全
- RHSA-2018:2748: kernel security and bug fix update
- RHSA-2018:3408: git security update
- RHSA-2018:2570: bind security update
- RHSA-2018:3052: wget security and bug fix update
- RHSA-2018:3221: openssl security, bug fix, and enhancement update
- RHSA-2018:2384: kernel security and bug fix update
- RHSA-2018:3032: binutils security, bug fix, and enhancement update
- RHSA-2018:3157: curl and nss-pem security and bug fix update
- RHSA-2018:2285: yum-utils security update
- RHSA-2018:3092: glibc security, bug fix, and enhancement update
- CVE-2018-17182 on Ubuntu 14.04 LTS (trusty)
- CVE-2018-9415 on Ubuntu 14.04 LTS (trusty)
- CVE-2018-8043 on Ubuntu 14.04 LTS (trusty)
- CVE-2018-3620 on Ubuntu 14.04 LTS (trusty)
- CVE-2018-14634 on Ubuntu 14.04 LTS (trusty)
- CVE-2018-14609 on Ubuntu 14.04 LTS (trusty)
- CentOS Linux 7安全基线检查
- Redis安全基线检查
- RHSA-2019:1168-重要: 内核 安全更新
- RHSA-2019:1481-重要: 内核 安全更新
- RHSA-2019:0512-重要: 内核 安全和BUG修复更新
- ThinkPHP漏洞
- ThinkPHP 5.1.X <= 5.1.30 远程代码执行漏洞
- ThinkPHP 5 <=5.0.22 远程代码执行高危漏洞
- ThinkPHP <5.0.24 Request.php 远程代码执行漏洞
- PHP
- 怎样获取PHP各种版本
- 攻击
- SSH暴力破解
- RDP暴力破解
- SQLSERVER暴力破解
- MYSQL暴力破解
- FTP暴力破解
- SQL注入
- 代码执行
- XSS攻击
- 本地文件包含
- 远程文件包含
- 脚本木马
- 上传漏洞
- 路径遍历
- 越权访问
- CSRF
- CRLF
- 其他