问题描述
我们希望禁止通过 ip-address:port 形式的访问,并且“禁止”的含义为不做任何响应。
解决方法
server { listen 80 default_server; server_name _; # 不重要 return 444; }
default_server:表示该 server 为默认 server(用于处理通过网络地址访问的请求)。如果所有的 server 都没有 default_server 配置,则使用首个 server 配置。
return 444:表示不响应,立即关闭连接。通过 curl 测试时,将返回 curl: (52) Empty reply from server 信息。
参考文献
WikiNotes/禁止直接访问(通过网络地址访问)
Module ngx_http_core_module / listen
Nginx / Server names
Blocking IPs with Nginx – DreamHost Knowledge Base
How to block access using the Server IP in NGINX? | DigitalOcean