ubuntu - 如何使用服务器 IP 地址完全禁用对 nginx 的访问?

标签 ubuntu nginx configuration cloudflare

由于我使用启用了 DNS 代理的 Cloudflare,我不希望用户找出/使用原始服务器 IP 地址并绕过 Cloudflare 安全和保护措施(在此服务器上托管多个具有不同域的网站)。
在做了一些研究之后,我能找到的唯一解决方案是将下面的代码添加到默认站点配置中。

server {
    listen      80 default_server;
    listen      [::]:80 default_server;
    server_name "";
    return      444;
}
这种方法“有效”,但是会出现一些问题:
  • 仍然可以使用 https:// 访问该网站。
  • 这种方法似乎并没有真正禁用使用 IP 地址的 nginx 访问,它只是不返回任何内容。

  • 有没有更好的方法来禁用使用 IP 地址的 nginx 访问/是否可以改进我当前的方法?


    服务器操作系统
    Nginx 版本


    Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-72-generic 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

    关于ubuntu - 如何使用服务器 IP 地址完全禁用对 nginx 的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68178577/

    相关文章:

    NGINX 将 SMTP 身份验证凭据转发到下一个服务器?

    django - 使用 Nginx 作为代理服务器,使用 django 作为后端时如何正确处理重定向响应

    configuration - 在高级模式下编译时对象被删除或部分折叠 - Google Closure Compiler

    android - 设备方向更改时 xml 不切换

    python - Windows 命令提示符,带有用于 Internet 访问的自动代理 URL

    ubuntu - "-bash: ./ngrok: cannot execute binary file: Exec format error"

    node.js - 由于 NO_PUBKEY 未找到错误,无法在 Ubuntu 18.04.5 LTS 上安装 NodeJS 14 或 16

    elasticsearch - 在 elasticsearch 中使用首选项 _local

    qt - app.setWindowIcon(icon) 仅有时有效

    c++ - 我正在尝试运行 CUDA 示例,但我在 Ubuntu 16.04 LTS 上遇到 openGL (libGLEW.a) 问题