我已经使用mod_proxy
从example-domain.com重定向到example-domain.com:8080,没有CloudFlare(预留代理)它可以工作......但是使用CloudFlare它只是响应错误1000个DNS指向禁止的IP。有没有机会通过这个仍然使用CloudFlare来保护自己?我不希望地址显示类似于mod_rewrite http://example-domain.com:8080的内容,这就是为什么我重定向,在端口80上托管是不可能的,所以没有更改。
我的虚拟主机配置:
<Directory /var/www/example-domain.com>
AllowOverride None
Require all denied
</Directory>
<VirtualHost *:80>
DocumentRoot /var/www/example-domain.com/web
ServerName example-domain.com
ServerAlias www.example-domain.com
ServerAlias alias.example-domain.com
ServerAdmin webmaster@example-domain.com
ProxyPreserveHost On
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://example-domain.com:8080/
ProxyPassReverse / http://example-domain.com:8080/
</VirtualHost>
答案 0 :(得分:2)
无论您通过哪个端口访问CloudFlare,CloudFlare都倾向于首先尝试端口80/443。如果它可以在它自己的代理期间连接到这些端口,它会在那里停止,然后不会尝试你真正想要的端口(在你的情况下为8080)。
因此,这看起来像一个循环循环,您将请求从CloudFlare指向代理,通过CloudFlare指向服务器端口8080.然后CloudFlare剥离端口8080并通过普通连接进行连接。
解决此问题的最佳方法是简单地将ProxyPass设置为通过不通过CloudFlare网络运行的URL或仅通过localhost运行。
因此,要么将VirtualHost中的ProxyPass更改为:
ProxyPass / http://direct.example-domain.com:8080/
ProxyPassReverse / http://direct.example-domain.com:8080/
direct.example-domain.com不通过CloudFlare网络路由(CloudFlare DNS中的灰色云,提供您正在进行全主机CloudFlare设置)。
或者更改您的代理传递以通过localhost:
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
玩得开心!