私はmod_proxyを使用してApache2サーバーの背後にあるポート8080でJava Webアプリケーションであるjenkinsを実行しています。
+---------------+ +----------------+
| apache2 | -----> | jenkins:8080 |
+---------------+ +----------------+
Jenkinsに直接アクセスする場合、たとえばhttp://myhost:8080/結果は正常に見えます(すべての文字が正しくエンコードされています)。
しかし、Apacheプロキシで試してみると、次のようになります。
私のmod_proxy設定は次のとおりです
SSLEngine on
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
SetOutputFilter proxy-html
SetOutputFilter INFLATE;proxy-html;DEFLATE
SetEnv proxy-nokeepalive 1
Header edit Location ^http://myhost/ https://myhost/
私の言語設定は
# echo $LANG
en_US.utf8
# echo $LC_ALL
en_US.utf8
正しい文字セットを維持する方法を知っている人はいますか?
答え1
私は次のように私の問題を解決しましたジェンキンス文書
すべてのモードが有効になっていることを確認しました
a2enmod proxy
a2enmod proxy_http
a2enmod headers
この設定を使用しました
ProxyPass /jenkins http://localhost:8081/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8081/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
# Local reverse proxy authorization override
# Most unix distribution deny proxy by default (ie /etc/apache2/modsenabled/proxy.conf in Ubuntu)
<Proxy http://localhost:8081/jenkins*>
Order deny,allow
Allow from all
</Proxy>
おそらく、質問に投稿した設定にいくつかのエラーが含まれている可能性があります。以前のサーバーにすでに存在しているため、これを使用しています。 Jenkinsを新しいサーバーに移動しました。