Apache 웹 서버 포트 443 및 Tomcat 포트 8080, 리디렉션이 작동하지 않음

Apache 웹 서버 포트 443 및 Tomcat 포트 8080, 리디렉션이 작동하지 않음

Google Cloud의 CentOS에 Java 웹 애플리케이션이 있습니다. 를 사용하여 웹 앱에 액세스할 수 있습니다 http://mydomain:8080. https://mydomain( 8080URL 없이) 애플리케이션으로 연결되기를 원 하지만 대신 "123 테스트" Apache 페이지만 표시됩니다. 프록시 리디렉션을 수행해야 한다는 것을 알고 있지만 그 문제로 어려움을 겪고 있습니다. 해당 포트를 443Tomcat으로 리디렉션 해야 합니다 8080.

나는 태그 안에서 이것을 시도했습니다 <VirtualHost>:

1.

ProxyPass / http://www.mydomain.zone:8080
ProxyPassReverse / http://www.mydomain.zone:8080
ProxyPass "/" "http://www.mydomain.zone:8080"
ProxyPassReverse "/" "http://www.mydomain.zone:8080"
ProxyPass / https://www.mydomain.zone:8443
ProxyPassReverse / https://www.mydomain.zone:8443
ProxyPass "/" "https://www.mydomain.zone:8443"
ProxyPassReverse "/" "https://www.mydomain.zone:8443"

또한 구성 파일에서 항상 시도한 줄 위에 있지만 가상 호스트 태그 안에는 다음이 있습니다.

 ProxyRequests On
 ProxyPreserveHost On
 <Proxy *>
    Order allow,deny
     Allow from all
 </Proxy>

각 시도 후에 다음 명령을 수행합니다.systemctl restart httpd

또한 이 줄을 작성하려면 어떤 파일이 필요한지 혼란스럽습니다. conf/httpd.conf conf/httpd-le-ssl.conf은(는) 다른 폴더에 있습니다 conf.d/ssl.conf.

모듈:conf.modules.d/00-proxy.conf

# This file configures all the proxy modules:
LoadModule proxy_module modules/mod_proxy.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

톰캣의server.xml

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
        maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
        keystoreFile="/tmp/mydomain.zone.jks"
        keystorePass="pass"
        clientAuth="false" sslProtocol="TLS" />

이전에 구현한 규칙 이 있는지 궁금해서 iptables삭제했습니다. 현재 활성 iptables규칙은 다음과 같습니다.

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N FORWARD_IN_ZONES
-N FORWARD_IN_ZONES_SOURCE
-N FORWARD_OUT_ZONES
-N FORWARD_OUT_ZONES_SOURCE
-N FORWARD_direct
-N FWDI_trusted
-N FWDI_trusted_allow
-N FWDI_trusted_deny
-N FWDI_trusted_log
-N FWDO_trusted
-N FWDO_trusted_allow
-N FWDO_trusted_deny
-N FWDO_trusted_log
-N INPUT_ZONES
-N INPUT_ZONES_SOURCE
-N INPUT_direct
-N IN_trusted
-N IN_trusted_allow
-N IN_trusted_deny
-N IN_trusted_log
-N OUTPUT_direct
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES_SOURCE
-A INPUT -j INPUT_ZONES
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_IN_ZONES_SOURCE
-A FORWARD -j FORWARD_IN_ZONES
-A FORWARD -j FORWARD_OUT_ZONES_SOURCE
-A FORWARD -j FORWARD_OUT_ZONES
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -j OUTPUT_direct
-A FORWARD_IN_ZONES -i eth0 -g FWDI_trusted
-A FORWARD_IN_ZONES -g FWDI_trusted
-A FORWARD_OUT_ZONES -o eth0 -g FWDO_trusted
-A FORWARD_OUT_ZONES -g FWDO_trusted
-A FWDI_trusted -j FWDI_trusted_log
-A FWDI_trusted -j FWDI_trusted_deny
-A FWDI_trusted -j FWDI_trusted_allow
-A FWDI_trusted -j ACCEPT
-A FWDO_trusted -j FWDO_trusted_log
-A FWDO_trusted -j FWDO_trusted_deny
-A FWDO_trusted -j FWDO_trusted_allow
-A FWDO_trusted -j ACCEPT
-A INPUT_ZONES -i eth0 -g IN_trusted
-A INPUT_ZONES -g IN_trusted
-A IN_trusted -j IN_trusted_log
-A IN_trusted -j IN_trusted_deny
-A IN_trusted -j IN_trusted_allow
-A IN_trusted -j ACCEPT

답변1

2가지 문제가 발생했는데 문제는 프록시 규칙에 관한 것이 아니었고 올바르게 작성했습니다.

여기서 첫 번째 문제에 대한 해결책을 찾았습니다.http://sysadminsjourney.com/content/2010/02/01/apache-modproxy-error-13permission-denied-error-rhel/

분명히 SELinux는 httpd가 아웃바운드 연결을 시작할 수 없도록 허용하지 않았습니다. 나는 그것을 허용해야 했습니다: /usr/sbin/setsebool -P httpd_can_network_connect 1

server.xml두 번째 문제는 에서 SSL을 구성했지만 Apache에서 SSL이 이미 활성화되어 있기 때문에 Tomcat이 너무 많은 RAM 메모리를 사용한다는 것입니다 . 내가 그것을 언급했을 때 Tomcat은 RAM 소비를 줄였습니다.

관련 정보