我正在尝试在本地服务器上配置 Jenkins,以便从本地网络中的其他机器访问。
这是我目前所做的:首先,我配置PREFIX
了/etc/default/jenkins
:
PREFIX=/jenkins
JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=$PREFIX"
然后我重新加载了詹金斯:
sudo /etc/init.d/jenkins force-reload
因此,我可以通过 访问 Jenkins http://localdomain:8080/jenkins
。但我想摆脱:8080
;因此,我进行了/etc/apache2/sites-available/jenkins
如下编辑:
<VirtualHost *:80>
ServerAdmin my.email@address
ServerName localdomain
ServerAlias localdomain
ProxyPreserveHost on
ProxyPass /jenkins http://localdomain:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localdomain:8080/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localdomain/jenkins*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
按照我在这里和那里找到的不同教程进行操作。然后我重新加载了 Apache,但如果我仍然可以通过 访问 Jenkins http://localdomain:8080/jenkins
,当我尝试通过 访问它时http://localdomain/jenkins
,我收到 404 错误。我检查了 Apache 错误日志,以下是我发现的内容:
[Mon Jan 05 11:41:02 2015] [error] [client xxx.xxx.x.xxx] File does not exist: /var/www/jenkins
你知道我做错了什么吗?我该怎么做才能让它正常工作?
编辑:
mod_proxy
已安装并正在运行,并apache2ctl -S
返回
/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server localdomain (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost localdomain (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost localdomain (/etc/apache2/sites-enabled/jenkins:1)
Syntax OK
答案1
就我而言,问题在于 Apache 的默认配置取代了 Jenkins 配置。
简单操作sudo a2dissite default; sudo service apache2 reload
就足以让它发挥作用。