2015-03-26 3 views
1

J'utilise déjà mod_proxy pour rediriger de example-domain.com vers example-domain.com:8080, bien sans CloudFlare (proxy de réserve) cela fonctionne ... mais avec CloudFlare il suffit de répondre à une erreur 1000 DNS pointe vers une adresse IP interdite. Y a-t-il des chances pour que ça se passe et que j'utilise CloudFlare pour me protéger? Je ne veux pas que l'adresse montre quelque chose comme ça avec mod_rewrite http://example-domain.com:8080, c'est pourquoi je redirige, l'hébergement sur le port 80 est impossible donc pas de changements là-bas.Cloudflare et mod_proxy

Ma config vhost:

<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 [email protected] 
      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> 

Répondre

0

Indépendamment de ce port que vous accédez CloudFlare à travers, CloudFlare a tendance à essayer le port 80/443 premier. S'il peut se connecter à ces ports pendant son propre proxy, il s'arrête là et n'essaie pas le port que vous vouliez réellement (dans votre cas 8080). Par conséquent, cela ressemble à une boucle cyclique, vous pointez vos demandes de CloudFlare à proxy pour pointer vers CloudFlare vers le serveur sur le port 8080. CloudFlare est ensuite dépouiller le port 8080 et se connecter via une connexion simple. La meilleure façon de résoudre ce problème est simplement de configurer votre ProxyPass pour passer par une URL qui ne traverse pas le réseau CloudFlare ou simplement via localhost.

Donc, soit changer le ProxyPass dans votre VirtualHost:

 ProxyPass/http://direct.example-domain.com:8080/ 
     ProxyPassReverse/http://direct.example-domain.com:8080/ 

Où direct.example-domain.com ne pas passer par le réseau de CloudFlare (un nuage gris dans votre CloudFlare DNS, vous offrir vous faites une installation CloudFlare à hôte complet).

changer Sinon votre passe proxy pour passer par l'localhost:

 ProxyPass/http://127.0.0.1:8080/ 
     ProxyPassReverse/http://127.0.0.1:8080/ 

Amusez-vous!