NGINX无法处理错误的请求

时间:2018-08-29 11:29:34

标签: php nginx

所以这是我第一次将NGINX用于任何用途。我有2个CentOs 7个虚拟机-一个带有NGINX,另一个带有APACHE。 在两个我都有默认配置。 我两个都有相同的php页面。我尝试将带有错误标头的GET请求推送到两者。 Apache的响应是错误400 Bad Request-这很棒。 另一方面,NGINX以纯文本形式公开了php。

我正在寻找一种方法来确保它在NGINX中的安全,并确保在错误的标头中返回错误400。 我希望有人可以建议我可以在哪里进行配置。

4 个答案:

答案 0 :(得分:0)

对于返回标头,它已经被回答了,因此您可以将标头放在任意位置:

nginx add headers when returning 400 codes

但是,如果您要使用自定义页面处理错误,从而看不到整个php页面,则可以为每个错误设置自定义.html页面。该DO指南将为您提供帮助。

https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-to-use-custom-error-pages-on-ubuntu-14-04

答案 1 :(得分:0)

默认情况下,Nginx仅忽略无效的标头。如果您希望它返回400,则需要在配置中包括以下指令:

ignore_invalid_headers off;

这可以是http或服务器级别,但根据文档:

  

如果指令是在服务器级别指定的,则其值仅为   如果服务器是默认服务器,则使用此命令。指定的值也适用于   所有侦听相同地址和端口的虚拟服务器。

答案 2 :(得分:0)

我只想添加标题是否为空我得到我所需要的-400错误请求。但是,如果我在标题中输入与服务器主机名不同的任何内容,则会出现问题。

答案 3 :(得分:0)

好的,所以我解决了我的问题。这是解决方案。 在服务器块中,我有这个:

 server {
listen       80 default_server;
server_name  domain1.com www.domain1.com;

我必须删除 default_server ,然后我们就可以了。