私はポート8080でリッスンおよびApache HTTPDがポート80でリッスンし、443のTomcatはApacheの背後にhttpdが
のhttpdプロキシクライアントを介し、Tomcatを持っている(HTTPDの作品、Tomcatはエラー500を返します) ajpを経由してTomcatへ。これは魅力のように機能します。
上記の引用文は間違っています。私は誤って、ajpプロトコルを使用するようにプロキシを設定すると仮定しましたが、私は実際にはhttpを使用しました。 これもこの質問の答えにつながります。
しかし、https経由で接続しようとすると、ログに記録されていないエラー500が表示されます。どこでも。私の推測は、httpd(443)へのhttps接続が機能していることです.ajp-proxyも動作しますが、Tomcatは私が知らないことを期待しています。
私はすでにプロキシをポート8443と8080に接続しようとしました。私の意見では、すべてのトラフィックがhttpd経由でリダイレクトされるため、ポート8080でTomcatにアクセスするのに十分です。
は/ etc/apache2の/サイト利用可能/デフォルト-SSL
<IfModule mod_ssl.c>
ErrorLog /var/log/apache2/ssl_engine.log
LogLevel error
NameVirtualHost *:443
<VirtualHost *:443>
ServerName www.doma.in
ServerAlias doma.in
ServerSignature Off
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl_certificate.crt
SSLCertificateKeyFile /etc/ssl/certs/ssl_certificate.key
SSLCertificateChainFile /etc/ssl/certs/intermediate_ca.crt
ProxyPass/ajp://localhost:8080/ retry=0 timeout=240
ProxyPassReverse/ajp://localhost:8080/
</VirtualHost>
</IfModule>
/etc/tomcat7/server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URLEncoding="UTF-8" />
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8080" URLEncoding="UTF-8" /> also tried this, but same result. -->
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>
</Engine>
</Service>
</Server>
残念ながら、私ができる:ここでは
は構成ですいずれのログにもエラーが表示されないため、ログを提供しません。
この作品を作成する方法についてのご意見はありますか?
敬具 Z
'ProxyPass/ajp:// localhost:8080 /'のようなproxypassディレクティブでスラッシュをマッチングして、もう一度やり直してください。 sidenoteではRewriteEngineはまったく必要ないので、削除することもできます。 –
@ ezra-s紛失したスラッシュを追加しました。残念ながら、これは結果を変えなかった。 RewriteEngineは、私がいくつかのURLを調整するために使用するブロックの残りの部分です(テストしているURLには適用されません)。 – zoku