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.

  • L'importance d'avoir SELinux activé sur un server Web
  • La politique SELinux du server Zabbix
  • Etiquette SElinux pour les sockets php-fpm
  • Affectez le context selinux à l'application sans changer le context du binary
  • Comment build des règles SELinux pour un server Glassfish
  • Apache curl via proxy HTTP
  • SELinux autorise l'access au script perl par rotation de journal
  • Afficher les politiques personnalisées de selinux
  • Pourquoi Selinux bloque-t-il l'access ssh distant sans mot de passe?
  • Httpd sur Centos6 ne répertorie pas le contenu du directory
  • Centos 7 et OpenVPN: comment les rendre amis?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.