Apache mod 代理确实使用与代理服务器不同的字符集

Apache mod 代理确实使用与代理服务器不同的字符集

我正在使用 mod_proxy 在 apache2 服务器后面的端口 8080 上运行 jenkins,一个 java web 应用程序。

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

当我直接访问詹金斯时,例如http://myhost:8080/结果看起来正常(所有字符都编码正确)。

詹金斯直接访问

但是当我通过 apache 代理尝试它时,它看起来像这样

apache2 mod 代理背后的 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>

也许我在问题中发布的配置包含一些错误。我使用它是因为它已经存在于旧服务器上。我将詹金斯移至新服务器。

相关内容