Nginx 返回的 405 错误表示 "Method Not Allowed"(方法不允许),即客户端使用了目标资源不支持的 HTTP 请求方法。
确保 Nginx 配置允许所需的 HTTP 方法:
location / {
# 明确允许的方法
limit_except GET POST {
allow all;
}
# 其他配置...
}
如果是反向代理场景,确保代理传递所有方法:
location /api/ {
proxy_pass http://backend;
proxy_method $request_method; # 传递原始请求方法
}
对于静态文件,通常只应允许 GET/HEAD 方法:
location /static/ {
# 只允许 GET 和 HEAD 方法
if ($request_method !~ ^(GET|HEAD)$ ) {
return 405;
}
# 其他静态文件配置...
}
可以提供更友好的 405 错误页面:
error_page 405 /custom_405.html;
location = /custom_405.html {
root /path/to/error/pages;
internal;
}
确保后端应用程序确实支持请求的 HTTP 方法。
/var/log/nginx/error.log
curl -v
或 Postman 测试不同 HTTP 方法405 错误通常是配置问题,通过仔细检查 Nginx 配置和后端应用支持的方法,通常可以快速解决。