环境:
我能够访问URL https://host/并看到jenkins。我没有添加AllowEncodedSlashes NoDecode,ProxyRequests Off或nocanon,但它似乎有效.不过,考虑到这些问题的重要性,我会再问一个问题。
这是我添加到/etc/httpd/conf.d/ssl.conf中的唯一行(就在与<VirtualHost _default_:443>匹配的</VirtualHost>之前):
ProxyPass / ajp://localhost:8009/我的印象是,把Jenkins和Apache httpd放在一起意味着
如果这种理解是正确的,我将寻找Apache配置规则,使Apache能够从Jenkins中提供静态内容。我已经试过了
ProxyPass /static !使用
DocumentRoot "/var/cache/jenkins/war"但这导致了一个不寻常的页面(很难识别为詹金斯.我没有测试链接)。当我启用Jenkins的访问日志(通过/etc/sysconfig/jenkins)时,出现了这样的条目(只复制了下面的摘录):
/static/6a3788e2/scripts/yui
/static/6a3788e2/css/
/adjuncts/6a3788e2/lib/layout/breadcrumbs.css当Jenkins服务重新启动时,会显示一个不同的文本。如何配置Apache以发送静态内容?
我还尝试将jenkins.war托管在默认的HTTP连接器端口8080 (即没有mod_proxy_ajp)上的tomcat (通过yum部署的tomcat6包)上。每次我重新启动tomcat时,static后的URL元素就会不同。
PS:没有足够的学分来创建一个标记mod_proxy_ajp,而是使用mod_proxy。不过,我可以悬赏50个学分。如果你认为在这个问题上付出了真正的努力,请投赞成票。
发布于 2014-09-18 05:59:46
您希望使用ProxyPassMatch而不是ProxyPass,如:
ProxyPassMatch ^/(?!static/) ajp://localhost:8009/这应该只代表/static中没有的内容。请注意,您可能需要为静态内容设置一个web根目录(但首先,您可能希望检查它是否有效)。
发布于 2014-09-22 12:55:34
正如我在对您的问题的评论中提到的,您提议的设置很可能不会降低Jenkins的负载。
您可以通过配置Apache(或者像恩吉克斯这样的另一个the服务器或像鱿鱼这样的代理)来减少Jenkins上的负载,比如配置一个缓存代理。这可能(您必须进行测试)从jenkins中删除部分负载。但是,由于Jenkins在默认情况下不会在未来某个地方设置对工件的请求的过期日期,因此在向客户端提供内容之前,代理仍然需要与jenkins进行检查(希望返回304而不是完整的文件)。
https://stackoverflow.com/questions/25679350
复制相似问题