web-dev-qa-db-fra.com

Le proxy Apache ne fonctionne pas pour un port localhost

J'ai Apache 2.2.15 en cours d'exécution sur le port 80 et je souhaite proxy un moteur de servlet sur le port localhost 8983. J'ai la configuration en cours d'exécution sur un autre serveur, mais je suis passé à une machine CentOS 6. Cela ne fonctionne pas sur la nouvelle machine. Ma configuration d'hôte virtuel:

 ProxyRequests Off 
 
 <Proxy *> 
 Commande refusée, autoriser 
 Autoriser de tous 
 </Proxy> 
 
 ProxyPass/http: // localhost: 8983/
 ProxyPassReverse/http: // localhost: 8983/

Je peux accéder au port 8983 si j'utilise un navigateur et y accéder directement (et ne pas passer par le proxy Apache), mais je ne peux pas me connecter si je vais sur/via le serveur Apache.

Je peux changer ce qui est mandaté par quelque chose comme http://slashdot.org et Slashdot obtient un proxy avec succès (donc je sais qu'il est capable de proxy en général).

J'ai activé la connexion de débogage dans Apache et voici la transaction:

 [Dim 22 avr 16:47:04 2012] [débogage] mod_proxy_http.c (56): proxy: HTTP: canonicalizing URL //localhost:8983/[.____. : 04 2012] [débogage] proxy_util.c (1506): [client 184.39.79.7] proxy: http: travailleur trouvé http: // localhost: 8983/pour http: // localhost: 8983/
 [Sun 22 avril 16:47:04 2012] [débogage] mod_proxy.c (998): exécution du gestionnaire http du schéma (tentative 0) 
 [Dim 22 avril 16:47:04 2012] [débogage] mod_proxy_http.c ( 1962): proxy: HTTP: URL de service http: // localhost: 8983/
 [Dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2011): proxy: HTTP: a acquis la connexion pour (localhost) 
 [dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2067): proxy: connexion http: // localhost: 8983/à localhost: 8983 
 [Dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2193): proxy: connecté/à localhost: 8983 
 [Dim 22 avril 16:47:04 2012] [débogage] proxy_util. c (2444): proxy: HTTP: socket fam 10 créé pour se connecter à localhost 
 [Dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2 455): (13) Autorisation refusée: proxy: HTTP: tentative de connexion à [:: 1]: 8983 (localhost) a échoué 
 [Dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2444): proxy: HTTP: socket fam 2 créé pour se connecter à localhost 
 [Dimanche 22 avril 16:47:04 2012] [erreur] (13) Autorisation refusée: proxy: HTTP: tentative de connexion à 127.0 .0.1: 8983 (localhost) a échoué 
 [Dim 22 avr 16:47:04 2012] [erreur] ap_proxy_connect_backend désactivant le travailleur pour (localhost) 
 [Dim 22 avr 16:47:04 2012] [débogage] proxy_util.c (2029): proxy: HTTP: a publié la connexion pour (localhost) 
 [dim 22 avril 16:47:04 2012] [débogage] mod_proxy_http.c (56): proxy: HTTP : URL canonicalisante //localhost:8983/favicon.ico[.____. diplomatiqueSun 22 avril 16:47:04 2012] [débogage] proxy_util.c (1506): [client 184.39.79.7] proxy: http: travailleur trouvé http: // localhost: 8983/pour http: // localhost: 8983/favicon.ico 
 [Dim 22 avril 16:47:04 2012] [débogage] mod_proxy.c (998): Exécution du gestionnaire http du schéma (tentative 0) 
 [Dim 22 avril 16:47:04 2012] [débogage] mod_proxy_http.c (1962): proxy: HTTP: URL de service http: // localhost: 8983/favicon.ico 
 [dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (1949): proxy: HTTP: réessayer le travailleur pour (localhost) 
 [Dim 22 avril 16:47:04 2012] [erreur] proxy: HTTP: connexion désactivée pour (localhost) 

Je ne sais pas ce que sont les prises fam 10 ou fam 2. Quelqu'un a-t-il des idées sur la raison pour laquelle il ne procède pas à un proxy sur mon port alternatif?

Merci!

17
ksclarke

Voici la solution à votre problème:

Pour activer ce booléen, vous devez simplement utiliser cette ligne (autorisations root)

setsebool -P httpd_can_network_connect on

ou

Sudo setsebool -P httpd_can_network_connect on

J'espère que cela pourra aider. Référence voir ici: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

7
Mchoeti

J'ai résolu mon problème:

Si je fais: sestatus -b | grep httpd

Je vois httpd_can_network_connect est off

La solution consiste à taper: togglesebool httpd_can_network_connect

11
ksclarke

Assurez-vous que le port 8080 écoute en exécutant la commande suivante

netstat -tlpn

Sinon, redémarrez le serveur Jenkins

Sudo /etc/init.d/jenkins start

Ça devrait marcher maintenant. J'espère que cela aide

1
Ajeet Khan