Прокси-сервер Apache не работает для локального порта

16

У меня есть Apache 2.2.15, работающий на порте 80, и я хочу проксировать движок сервлета на локальном порту 8983. У меня есть установка, запущенная на другом сервере, но я перешел на машину CentOS 6. Это не работает на новой машине. Конфигурация моего виртуального хоста:

ProxyRequests Off

<Прокси *>
   Заказать отказать, разрешить
   Разрешить от всех
</ Proxy>

ProxyPass / http: // localhost: 8983 /
ProxyPassReverse / http: // localhost: 8983 /

Я могу получить доступ к порту 8983, если я использую браузер и иду прямо к нему (и не использую прокси-сервер Apache), но не могу подключиться к нему, если я иду на / через сервер Apache.

Я могу изменить прокси на что-то вроде http://slashdot.org, и Slashdot успешно проксируется (так что я знаю, что он вообще может прокси).

Я включил отладочный вход в Apache, и это транзакция:

[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (56): прокси: HTTP: канонизировать URL // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1506): [клиент 184.39.79.7] прокси: http: найден рабочий http: // localhost: 8983 / для http: // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy.c (998): Запуск обработчика схемы http (попытка 0)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (1962): прокси: HTTP: обслуживающий URL http: // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2011): proxy: HTTP: получено соединение для (localhost)
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2067): прокси: подключение http: // localhost: 8983 / к localhost: 8983
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2193): прокси: подключен / к локальному хосту: 8983
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2444): proxy: HTTP: сокет fam 10 создан для подключения к localhost
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2455): (13) Отказано в доступе: прокси: HTTP: попытка подключения к [:: 1]: 8983 (localhost) не удалась
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2444): proxy: HTTP: сокет fam 2 создан для подключения к localhost
[Sun Apr 22 16:47:04 2012] [error] (13) Отказано в доступе: proxy: HTTP: попытка подключения к 127.0.0.1:8983 (localhost) не удалась
[Sun Apr 22 16:47:04 2012] [error] ap_proxy_connect_backend отключение работника для (localhost)
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2029): proxy: HTTP: освободил соединение для (localhost)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (56): proxy: HTTP: канонизирующий URL-адрес //localhost:8983/favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1506): [клиент 184.39.79.7] прокси: http: найден рабочий http: // localhost: 8983 / для http: // localhost: 8983 / favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy.c (998): Запуск обработчика схемы http (попытка 0)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (1962): прокси: HTTP: URL-адрес обслуживания http: // localhost: 8983 / favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1949): proxy: HTTP: повторная попытка работника для (localhost)
[Sun Apr 22 16:47:04 2012] [error] proxy: HTTP: отключено соединение для (localhost)

Я не знаю, что такое гнезда fam 10 или fam 2. У кого-нибудь есть идеи о том, почему он не подключается к моему альтернативному порту?

Благодарность!

ksclarke
источник
Прокси-сервер Apache пропускает только трафик HTTP или HTTPS.
ionFish

Ответы:

7

Вот решение вашей проблемы:

Чтобы включить это логическое значение, вы просто должны использовать эту строку (права root)

setsebool -P httpd_can_network_connect on

или

sudo setsebool -P httpd_can_network_connect on

Надеюсь, это поможет. Ссылку смотрите здесь: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

Mchoeti
источник
11

Я решил свою проблему:

Если я сделаю: sestatus -b | grep httpd

Я вижу httpd_can_network_connectэтоoff

Решение состоит в том, чтобы напечатать: togglesebool httpd_can_network_connect

ksclarke
источник
4
Не знаю, откуда toggleseboolвзялась (не на моем CentOS7-минимальном), и в Интернете можно предположить, что даже если у вас есть togglesebool только значения «в памяти», они меняются » . Но setsebool -P httpd_can_network_connect=1сработало для меня; -P, чтобы он пережил перезагрузку. Спасибо за подсказка!
jwd630
1

Убедитесь, что порт 8080 прослушивает, выполнив следующую команду

netstat -tlpn

Если нет, то перезапустите сервер jenkins.

sudo /etc/init.d/jenkins start

Это должно работать сейчас. Надеюсь, это поможет

Аджит Хан
источник