Я пытаюсь интегрировать Tomcat с Apache. Моя цель - перенаправить все запросы
http://localhost/myapp
наhttp://localhost:8080
Я следовал этому руководству: http://tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html
Мой httpd.conf
выглядит так:
Include conf.modules.d/*.conf
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /myapp http://localhost:8080 retry=0 timeout=5
ProxyPassReverse /myapp http://localhost:8080
Мой server.xml в apache-tomcat выглядит так:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" />
Теперь, когда я пробую URL-адрес http://localhost/myapp
, он выдает 503 Service Unavailable
ошибку.
И Tomcat, и Apache работают. URL http://localhost:8080
работает нормально.
Может быть проблема с правами доступа к файлам?
Для tomcat
пользователя и группы есть root/root
и для httpd
пользователя и группы.apache/apache
Я что-то упускаю или делаю неправильно?
Версия Httpd - 2.4.6, а версия Tomcat - 8.0.
Журналы ошибок httpd:
[proxy:error] [pid 19905] (13)Permission denied: AH00957: HTTP: attempt to connect to 127.0.0.1:8080 (localhost) failed
[proxy:error] [pid 19905] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 0s
[proxy_http:error] [pid 19905] [client ::1:51615] AH01114: HTTP: failed to make connection to backend: localhost
Решено!
Ответ здесь: http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/
ProxyPass*
строк я не мог использовать свое фактическое имя сервера и вместо этого мне нужно было использовать либоlocalhost
мой IP-адрес, например,ProxyPass / http://localhost/
работал, ноProxyPass / http://example.com/
не работал .Ответы:
(Отвечено OP в редактировании вопроса. Преобразовано в ответ вики сообщества. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )
ОП написала:
Это ссылка на блог, в которой объясняется:
Если это проблема, ее можно решить, запустив:
А более точный источник информации см. На https://wiki.apache.org/httpd/13PermissionDenied.
источник
это сработало для меня:
источник
ProxyPass / http:// 1.2.3.4:1234
наProxyPass / http://localhost:1234
(то же самое сделано для ProxyPassReverse) - я не знаю, почему это произошло сегодня. UnattendedUpdate не устанавливал вещи, связанные с apache, и не запускался сегодня.Немедленно решить проблему, это связано с внутренней безопасностью
Мы, SnippetBucket.com, работающий на корпоративный Linux RedHat, обнаружили, что httpd-сервер не позволяет запускать прокси, ни localhost, ни 127.0.0.1, ни какой-либо другой внешний домен.
Как найти в журнале сервера
Журнал аудита обнаружил аналогичную проблему с портом
Из-за внутренней безопасности Linux по умолчанию, эту причину нужно исправить (временно)
Решить постоянную проблему
источник
В CentOS Linux версии 7.5.1804 мы смогли выполнить эту работу, отредактировав / etc / selinux / config и изменив настройки SELINUX следующим образом:
источник