具有Cloudflare的NGINX反向代理

时间:2019-11-28 14:54:02

标签: nginx cloudflare nginx-reverse-proxy

我在使用NGINX进行反向代理配置时遇到问题。我正在使用Cloudflare作为DNS服务器。我在Cloudflare中添加了两个“ A”条目,其中一个启用了代理,另一个未启用。例如:

  1. system.domain.com(Cloudflare代理已启用)
  2. system2.domain.com(关闭Cloudflare代理)

我的NGINX配置:

server {
    listen 80;
    listen [::]:80;

    server_name system.domain.com system2.domain.com;
    server_tokens off;

    set_real_ip_from 192.168.1.1;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;

    location / {
        allow <My Public IP>;
        deny all;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.100;
    }
}

在浏览器中从允许的IP地址页面输入地址system.domain.com后,将正确加载(我的公共IP地址已保存在访问日志中)。但是,当我从相同的IP地址输入到system2.domain.com地址时,出现错误:

access forbidden by rule, client: 192.168.1.1

此问题来自何处? Cloudflare代理会以某种方式影响它吗?该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为问题在于以下几行:

real_ip_header X-Forwarded-For;

我认为关闭代理服务器时不会设置它。尝试将其更改为以下值,应始终将其设置:

real_ip_header CF-Connecting-IP;

来源:https://www.tools4nerds.com/online-tools/cf-real-ip-from-generator