Apache Web Server 連接埠 443 和 Tomcat 連接埠 8080,重定向不起作用

Apache Web Server 連接埠 443 和 Tomcat 連接埠 8080,重定向不起作用

我在 Google Cloud 上的 CentOS 上有一個 Java Web 應用程式。我可以使用 存取我的網路應用程式http://mydomain:8080。我希望https://mydomain8080URL 中沒有)引導至應用程序,但相反,我只得到“123 test”Apache 頁面。我知道我需要進行代理重定向,但我正在努力解決這個問題。我需要將該連接埠443重定向到 Tomcat 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

第二個問題是我的 Tomcat 使用了太多 RAM 內存,因為我在 中配置了 SSL server.xml,但我的 Apache 中已經啟用了 SSL。當我註解掉這一點時,Tomcat 減少了 RAM 消耗。

相關內容