Le proxy Apache ne fonctionne pas pour un port localhost

16

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 *>
   Ordonner refuser, 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 (sans 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 avril 16:47:04 2012] [débogage] mod_proxy_http.c (56): proxy: HTTP: canonicalizing URL // localhost: 8983 /
[Dim 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 /
[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 /
[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 (2455): (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
[Dim 22 avril 16:47:04 2012] [erreur] (13) Autorisation refusée: proxy: HTTP: la tentative de connexion à 127.0.0.1:8983 (localhost) a échoué
[Dim 22 avril 16:47:04 2012] [erreur] ap_proxy_connect_backend désactivant le travailleur pour (localhost)
[Dim 22 avril 16:47:04 2012] [débogage] proxy_util.c (2029): proxy: HTTP: a libéré la connexion pour (localhost)
[Dim 22 avril 16:47:04 2012] [débogage] mod_proxy_http.c (56): proxy: HTTP: canonicalizing URL //localhost:8983/favicon.ico
[Dim 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: nouvelle tentative du 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!

ksclarke
la source
Le proxy Apache autorise uniquement le trafic HTTP ou HTTPS à le traverser.
ionFish

Réponses:

7

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

Mchoeti
la source
11

J'ai résolu mon problème:

Si je fais: sestatus -b | grep httpd

Je peux voir httpd_can_network_connectestoff

La solution est de taper: togglesebool httpd_can_network_connect

ksclarke
la source
4
Je ne sais pas d'où toggleseboolvient (pas sur mon CentOS7-minimal) et le Web suggère que même si vous avez togglesebool seulement les valeurs "en mémoire" sont modifiées " . Mais cela a setsebool -P httpd_can_network_connect=1fonctionné pour moi; -P pour le faire survivre à un redémarrage. Merci pour l'astuce!
jwd630
1

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

Cela devrait fonctionner maintenant. J'espère que cela aide

Ajeet Khan
la source