Apache Mod プロキシは、プロキシサーバーとは異なる文字セットを使用します。

Apache Mod プロキシは、プロキシサーバーとは異なる文字セットを使用します。

私はmod_proxyを使用してApache2サーバーの背後にあるポート8080でJava Webアプリケーションであるjenkinsを実行しています。

+---------------+              +----------------+
|    apache2    |    ----->    |  jenkins:8080  |    
+---------------+              +----------------+

Jenkinsに直接アクセスする場合、たとえばhttp://myhost:8080/結果は正常に見えます(すべての文字が正しくエンコードされています)。

Jenkins直接アクセス

しかし、Apacheプロキシで試してみると、次のようになります。

apache2モードエージェントの背後にあるJenkins

私の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を新しいサーバーに移動しました。

おすすめ記事