Problèmes avec ProxyPass et ProxyPassReverse lors de la migration vers localhost et un autre port TCP

Je tente d'utiliser ProxyPass et ProxyPassReverse vers des requests de proxy via Apache vers une autre instance de server qui est liée à l'hôte local sur un autre port TCP que le Vhost existe (VHost est lié à: 80, lorsque la cible est liée à: 5000).

Cependant, je reçois plusieurs fois HTTP 503 lors de l'access à l'location.

Selon la documentation ProxyPass …

<VirtualHost *:80> ServerName apacheserver.domain.local DocumentRoot /var/www/redmine/public ErrorLog logs/redmine_error <Directory /var/www/redmine/public> Allow from all Options -MultiViews Order allow,deny AllowOverride all </Directory> </VirtualHost> PassengerTempDir /tmp/passenger <Location /rhodecode> ProxyPass http://127.0.0.1:5000/rhodecode ProxyPassReverse http://127.0.0.1:5000/rhodecode SetEnvIf X-Url-Scheme https HTTPS=1 </Location> 

J'ai testé la binding du server alternatif avec l'adresse IP de l'interface, et le même problème se produit.

La requête de maintenance du server est une instance de python: httpserver, et elle a été configurée pour utiliser le suffixe / rhodecode (comme je l'ai vu dans d'autres publications sur ProxyPass). La documentation du projet lui – même , Rhodecode, indique qu'elle utilise ce qui précède.

Le problème est persistant si je cible un autre server qui dessert un autre port.

ProxyPass autorise-t-il la proxying vers un autre port TCP?

[mettre à jour]

Je ne supprimerai pas cela, au cas où quelqu'un rencontrerait le même problème.

J'avais mis un ErrorLog, et dans ErrorLog, l'erreur suivante a été signalée:

 [Wed Nov 09 11:36:35 2011] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:5000 (192.168.100.100) failed [Wed Nov 09 11:36:35 2011] [error] ap_proxy_connect_backend disabling worker for (192.168.100.100) 

Après quelques searchs supplémentaires, j'ai essayé de définir SELinux comme permissif ( echo 0 >/selinux/enforce ) et réessayer.

Il s'avère que l' httpd_can_network_connect boolean SELinux httpd_can_network_connect doit être réglé sur 1 .

Pour la persistance lors du redémarrage:

setsebool -P httpd_can_network_connect=1

One Solution collect form web for “Problèmes avec ProxyPass et ProxyPassReverse lors de la migration vers localhost et un autre port TCP”

Un moyen plus agréable de résoudre ce problème (pour avoir votre gâteau et le manger) en ce qui concerne SELinux est d'exécuter cette command pour que les types httpd_t soient au courant du port que vous utilisez.

 semanage port -a -p tcp -t http_port_t 5000 

Vous pouvez désactiver ce boolean puis continuer à le faire fonctionner.

  • Le script CGI ne parvient pas à ouvrir un socket (CentOS 6.2 / Apache2)
  • Les problèmes SELinux exécutent le script Expect de fail2ban
  • Comment exécuter selinux sanbdox avec access à / dev / urandom
  • SELinux: pas d'erreurs d'audit mais erreurs d'autorisation nginx
  • En essayant de searchr pourquoi httpd essayerait de se connecter à un port Tor
  • SELinux empêche Fail2Ban de recevoir un courrier électronique via msmtp
  • Comment configurer SELinux pour permettre à apache de lancer git
  • Comment exécuter PhantomJS sur CentOS avec SELinux?
  • Apache peut-il sur CentOS devant un repository Subversion situé en dehors de son tree de directory racine de document?
  • Comment interdire au Docker Daemon de monter le système de files racine de l'hôte dans le conteneur
  • CentOS ignore ma key publique
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.