带有Cloudflare的NGINX反向代理

问题描述 投票:0回答:1

我在使用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代理会以某种方式影响它吗?如何解决这个问题?

nginx cloudflare nginx-reverse-proxy
1个回答
0
投票

我相信问题在于以下几行:

real_ip_header X-Forwarded-For;

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

real_ip_header CF-Connecting-IP;

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

© www.soinside.com 2019 - 2024. All rights reserved.