未按安装指南操作时,网站可通过IP地址访问

如果您采取的步骤未在云安装列表中列出,那么从定义上讲,它就不是“原生安装”。

Cloudflare 模板并未做任何明显会干扰重定向的操作:

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        # 下载 CloudFlare IP 列表
        wget https://www.cloudflare.com/ips-v4/ -O - > /tmp/cloudflare-ips
        wget https://www.cloudflare.com/ips-v6/ -O - >> /tmp/cloudflare-ips
        # 转换为 nginx 命令并转义,以便嵌入到 sed 追加命令中
        CONTENTS=$(</tmp/cloudflare-ips sed 's/^/set_real_ip_from /' | sed 's/$/;/' | tr '\n' '\\' | sed 's/\\/\\n/g')
        
        echo CloudFlare IPs:
        echo $(echo | sed "/^/a $CONTENTS")
        # 插入到 discourse.conf 中
        sed -i "/sendfile on;/a $CONTENTS\nreal_ip_header CF-Connecting-IP;" /etc/nginx/conf.d/discourse.conf
        # 清理
        rm /tmp/cloudflare-ips

  - exec: "/tmp/add-cloudflare-ips"
  - exec: "rm /tmp/add-cloudflare-ips"

它会获取 IP 范围,临时存储为 cloudflare-ips,并添加对 CF-Connecting-IP 的支持。

2 个赞