1
2
3
4
5
6
7
8
9
10
server {
listen 80 default_server;
listen 443 default_server;
server_tokens off;
server_name _;
return 403;

ssl_certificate /etc/nginx/ssl/server.pem;
ssl_certificate_key /etc/nginx/ssl/server-key.pem;
}

default_server; 代表默认无匹配的时候由当前的server处理。

server_name _;代表无效域名。

合起来的意思就是,其他server没有匹配的,全部由当前server进行匹配处理。

该server匹配到之后,处理的结果就是直接返回444状态

而前端收到的效果就是ERR_EMPTY_RESPONSE错误了。

配置完毕后输入nginx -t 检测通过后,通过service nginx reload刷新配置就可以生效了。

这个时候我们通过http://ip 或者https://ip 都将无法正确访问了。

所有的访问就必须通过域名才能访问了,通过ip地址的请求都将会打回。

2.1 问题

我配置完毕后,通过https://iphttp://ip 访问的确返回了444状态。但是如果我通过http://ip:443却不会返回444。而是返回400

最终我也没有找到解决方法,只是为了避免该页面上暴露nginx的版本号,添加了 server_tokens off;选项