我们有几个客户的“虚荣网址”,他们的vanity-url.com
域名到我们的real-url.com
。最近,我们已经指示所有的虚拟URL持有者更改他们的记录,以指向我们新的Cloudflare端点,以获得更好的DDoS保护。对于子域来说,一切都很好,但是许多DNS提供商不会让你把CNAME放在顶点/根,因为它破坏了RFC。
为了解决这个问题,我想设置一个简单的Nginx服务器,使用proxy_pass
将流量传递到Cloudflare,但我遇到了一个问题。当我有一个Nginx服务器运行以下配置时,它在CF端点处于“仅DNS”模式时工作,但是一旦我启用CF代理,它就会返回403 Forbidden,然后最终返回421 Misdirected Request代码。
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
server_name vanity-url.com;
ssl_certificate vanity-url.com.crt;
ssl_certificate_key vanity-url.com.key;
listen 443 ssl;
location / {
proxy_pass https://cloudflare.real-url.com;
proxy_set_header Host $host;
proxy_ssl_server_name on;
}
}
}
我有一个CF“自定义主机名”与适当的证书和密钥已经添加,所以它 * 应该 * 做SSL终止正确。我认为这是CF配置的问题,但我不确定。
1条答案
按热度按时间3htmauhk1#
因此,在这种情况下,
Cloudflare
不知道请求来自客户端、服务器还是代理。您可以在代理中添加一些额外的头文件,以使Cloudflare
知道您是一个代理:这里需要注意的另一件事是,您的代理服务器有一个
SSL
证书,并接受端口443
上的流量。确保您的Claoudflare SSL模式设置为Full (strict)
。如果这不起作用,我会首先检查所有服务器上的
firewall
代理,但最重要的是在Cloudflare服务器上-看看它是否阻止来自代理的请求。然后我只需要筛选日志(通常在/var/log/
中找到的访问和错误日志)。