[apache] Tomcat 8 용 mod_proxy에서 503 서비스를 사용할 수없는 Httpd 반환

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

apache-tomcat의 내 server.xml은 다음과 같습니다.

<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/



답변

(질문 편집에서 OP에 의해 답변 됨. 커뮤니티 위키 답변으로 변환되었습니다. 답변이없는 질문을 참조 하지만 댓글에서 문제가 해결됨 (또는 채팅에서 확장 됨) )

OP는 다음과 같이 썼습니다.

대답은 여기에 있습니다 : http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/

다음을 설명하는 블로그 링크입니다.

RHEL / CentOS의 SELinux는 기본적으로 httpd 프로세스가 아웃 바운드 연결을 시작할 수 없도록 제공되며, 이는 mod_proxy가 수행하려는 작업입니다.

이것이 문제인 경우 다음을 실행하여 해결할 수 있습니다.

 /usr/sbin/setsebool -P httpd_can_network_connect 1

보다 명확한 정보 소스는 https://wiki.apache.org/httpd/13PermissionDenied를 참조 하십시오.


답변

이것은 나를 위해 일했습니다.

ProxyRequests     Off
ProxyPreserveHost On
RewriteEngine On

<Proxy http://localhost:8123>
Order deny,allow
Allow from all
</Proxy>

ProxyPass         /node  http://localhost:8123
ProxyPassReverse  /node  http://localhost:8123


답변

즉시 문제 해결, 내부 보안 관련

우리 SnippetBucket.com은 엔터프라이즈 리눅스 RedHat에서 일하고 있으며 httpd 서버는 프록시 실행을 허용하지 않으며 localhost 또는 127.0.0.1 또는 기타 외부 도메인을 허용하지 않습니다.

서버 로그에서 조사한 결과

[error] (13)Permission denied: proxy: AJP: attempt to connect to
   10.x.x.x:8069 (virtualhost.virtualdomain.com) failed

감사 로그에서 유사한 포트 문제를 발견했습니다.

type=AVC msg=audit(1265039669.305:14): avc:  denied  { name_connect } for  pid=4343 comm="httpd" dest=8069
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket

Linux의 내부 기본 보안으로 인해이 원인을 수정해야합니다 (임시).

 /usr/sbin/setsebool httpd_can_network_connect 1

영구적 인 문제 해결

/usr/sbin/setsebool -P httpd_can_network_connect 1


답변

CentOS Linux 릴리스 7.5.1804에서는 / etc / selinux / config 를 편집 하고 SELINUX 설정을 다음과 같이 변경 하여이 작업을 수행 할 수있었습니다 .

SELINUX=disabled


답변