如何完全禁止使用服务器IP地址访问nginx?
How to completely disable access to nginx using server IP address?
由于我使用的是启用了 DNS 代理的 Cloudflare,我不希望用户找到 out/use 原始服务器 IP 地址并绕过 Cloudflare 安全和保护措施(正在托管具有不同域的多个网站在此服务器上)。
经过一些研究,我唯一能找到的解决方案是将下面的代码添加到默认站点配置中。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "";
return 444;
}
此方法“有效”,但是会出现一些问题:
- 仍然可以使用
https://
访问该网站
- 这个方法似乎并没有真正禁用使用 IP 地址的 nginx 访问,它只是没有 return 任何东西。
是否有更好的方法来禁用使用 IP 的 nginx 访问address/is是否可以改进我当前的方法?
服务器OS
Nginx 版本
Ubuntu 20.04.2 LTS(GNU/Linux 5.4.0-72-通用 x86_64)
nginx/1.18.0
您可以在您的 L4 防火墙上为仅具有 Cloudflare IP 的源服务器配置 https 允许规则
https://www.cloudflare.com/ips/
另一种方法是,您可以 运行 源服务器上的 Cloudflare 隧道。
您将不必再发布您的原始 IP。
https://www.cloudflare.com/products/tunnel/
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps
由于我使用的是启用了 DNS 代理的 Cloudflare,我不希望用户找到 out/use 原始服务器 IP 地址并绕过 Cloudflare 安全和保护措施(正在托管具有不同域的多个网站在此服务器上)。
经过一些研究,我唯一能找到的解决方案是将下面的代码添加到默认站点配置中。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name "";
return 444;
}
此方法“有效”,但是会出现一些问题:
- 仍然可以使用
https://
访问该网站
- 这个方法似乎并没有真正禁用使用 IP 地址的 nginx 访问,它只是没有 return 任何东西。
是否有更好的方法来禁用使用 IP 的 nginx 访问address/is是否可以改进我当前的方法?
服务器OS | Nginx 版本 |
---|---|
Ubuntu 20.04.2 LTS(GNU/Linux 5.4.0-72-通用 x86_64) | nginx/1.18.0 |
您可以在您的 L4 防火墙上为仅具有 Cloudflare IP 的源服务器配置 https 允许规则 https://www.cloudflare.com/ips/
另一种方法是,您可以 运行 源服务器上的 Cloudflare 隧道。 您将不必再发布您的原始 IP。 https://www.cloudflare.com/products/tunnel/ https://developers.cloudflare.com/cloudflare-one/connections/connect-apps