2012-03-20 66 views
2

我们在Jenkins面前使用Apache。詹金斯的阿贾克斯呼叫包括一个n头部,显然需要在往返中生存。如果我们在8080端口访问詹金斯,那么n包含在响应中,如果我们通过mod_proxy的访问中,n头越来越剥离。强制mod_proxy保留一些响应头

我试图mod_headers中使用保存这个头,但由于某种原因不能正常工作。有没有其他方法可以强制mod_proxy离开这个标题?

编辑1:

这是詹金斯得到返回的响应。

HTTP/1.1 200 OK 
Server: Winstone Servlet Engine v0.9.10 
Content-Type: text/html;charset=UTF-8 
n: 131 
Connection: Close 
Date: Tue, 20 Mar 2012 09:53:42 GMT 
X-Powered-By: Servlet/2.5 (Winstone/0.9.10) 

这是Apache正在返回:

Connection:close 
Content-Encoding:gzip 
Content-Type:text/html;charset=UTF-8 
Date:Tue, 20 Mar 2012 10:37:21 GMT 
Transfer-Encoding:chunked 
Vary:Accept-Encoding 

编辑2:

原来的Nginx 确实通过相应的头回来。这是我现在设法解决它的方式。仍然原来的问题是相关的:有没有办法使用Apache来完成它?

+0

标题是什么样的? mod_proxy应该(据我所知)只能扔掉语法上破碎的标题。 – 2012-03-20 10:22:09

回答

0

我最终转移到Nginx的。 Nginx没有去掉头文件。不过,仍然奇怪的是,你无法让Apache离开n标题。

1

我在apache下找到了解决这个问题的方法。

(见https://issues.jenkins-ci.org/browse/JENKINS-327

基本上

  1. 在运行我的詹金斯它是由亚历克斯建立的 “http://本地主机:8080 /詹金斯”

  2. 我想访问通过jenkins.mydomain.com。

现在,当我访问jenkins.mydomain.com Apache将我重定向到jenkins.mydomain.com/jenkins,不perfact但至少工作。

<VirtualHost *:80> 
ServerName jenkins.mydomain.com 
Redirect/http://jenkins.mydomain.com/jenkins 
<Location /jenkins> 
    ProxyPass http://localhost:8080/jenkins 
    ProxyPassReverse http://localhost:8080/jenkins 
</Location> 
</VirtualHost>