如何在CDN后面创建反向代理(另一个反向代理)

时间:2016-07-14 13:59:49

标签: nginx reverse-proxy cdn cloudflare

我有www.site.com,我有blog.site.com。

在site.com服务器上我有一个nginx反向代理,从www.site.com/blog指向www.blog.com,一切正常,这里是代码:

location  /blog {
  proxy_read_timeout 30s;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_set_header Host $host;
  proxy_pass       http://blog.site.com;
  proxy_redirect   off;
}

但是当我添加CloudFlare CDN时,我得到错误1000,因为它是另一个反向代理。 (https://support.cloudflare.com/hc/en-us/articles/200171976-Error-1000-DNS-points-to-prohibited-IP

我该如何解决?

1 个答案:

答案 0 :(得分:0)

这是因为cloudflare检测到blog.site.com上的站点也托管在cloudflare上,并且有可能允许您执行此操作将创建请求循环。

可能的解决方案:

  1. 让其中一位主机摆脱cloudflare;
  2. 直接代理nginx内部主机的IP地址。

代码:

location  /blog {
  proxy_read_timeout 30s;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto https;
  proxy_set_header Host $host;
  proxy_pass       http://{Your-Host-IP-Address};
  proxy_redirect   off;
}