所以这是我第一次将NGINX用于任何用途。我有2个CentOs 7个虚拟机-一个带有NGINX,另一个带有APACHE。 在两个我都有默认配置。 我两个都有相同的php页面。我尝试将带有错误标头的GET请求推送到两者。 Apache的响应是错误400 Bad Request-这很棒。 另一方面,NGINX以纯文本形式公开了php。
我正在寻找一种方法来确保它在NGINX中的安全,并确保在错误的标头中返回错误400。 我希望有人可以建议我可以在哪里进行配置。
答案 0 :(得分:0)
对于返回标头,它已经被回答了,因此您可以将标头放在任意位置:
nginx add headers when returning 400 codes
但是,如果您要使用自定义页面处理错误,从而看不到整个php页面,则可以为每个错误设置自定义.html页面。该DO指南将为您提供帮助。
答案 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 ,然后我们就可以了。