+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Nginx 配置禁止通过IP地址直接访问服务器上的Web服务

默认情况下Nginx配置完毕后,是允许ip地址直接访问的。直接使用IP访问会有一定的安全风险。 那么如何在Nginx中通过配置来禁止通过IP直接访问服务器的Web服务呢?3步解决问题。 1,打开 /etc/nginx 目录下的 nginx.conf 在修改前先备份 nginx.conf 文件 > \cp nginx.conf nginx.conf.[date] 2,在http.server里添加server配置(如果已有server配置,根据实际情况进行修改) http { ... server { listen 80 default_server; listen 443 default_server; server_name _; server_tokens off; return 403; ssl on; ssl_certificate xx.pem; #证书文件绝对路径。 ssl_certificate_key xx.key; #证书文件绝对路径。 ssl_session_timeout 60m; ssl_ciphers xxx; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; } .. } server配置说明: server_tokens off; 如果不配置,返回的页面会包含nginx版本,设置后,返回的页面不再包含nginx版本。 default_server; 代表默认无匹配的时候由当前的server处理。 server_name _;代表无效域名。 合起来的意思就是,其他server没有匹配的,全部由当前server进行匹配处理。 该server匹配到之后,处理的结果就是直接返回403状态 3,重启nginx 检查nginx: > nginx -t 重载nginx: > sudo nginx -s reload 这个时候我们通过http://ip 或者https://ip 都将返回403 常见错误: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/nginx.conf 方案:将 /etc/nginx/sites-available/default 文件中 server 部分注释即可
我的笔记