如何配置 Jenkins 在端口 80 上运行

如何配置 Jenkins 在端口 80 上运行

如何配置 Jenkins 在 HTTP 端口 80 上运行,仅特定子域上的某个 Apache 虚拟服务器可访问?

我有一个虚拟服务器:business.com 在服务器上运行。我还有另一个虚拟服务器,personal.com 也在运行。

我希望詹金斯在http://jenkins.personal.com:80/

这可能吗?我该怎么做?

提前致谢。

我正在使用带有 Apache2 的 Ubuntu 13.10。任何其他信息都可以提供:)

答案1

您不需要直接在端口 80 上为 Jenkins 提供服务。您可以使用 Apache2 安装来代理 Jenkins,并使用 Apache2 代理模块(您需要启用代理模块并重新启动 Apache2)。

在这里您可以检查我自己的由 Apache2 代理的 Jenkins 安装,实际上我通过 HTTPS(443)、HTTP(80)为其提供服务,只是重定向到安全连接。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName jenkins.ociotec.com
    ErrorLog ${APACHE_LOG_DIR}/jenkins.ociotec.com.error.log
    CustomLog ${APACHE_LOG_DIR}/jenkins.ociotec.com.access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName jenkins.ociotec.com
        ErrorLog ${APACHE_LOG_DIR}/jenkins.ociotec.com.error.log
        CustomLog ${APACHE_LOG_DIR}/jenkins.ociotec.com.access.log combined
        SSLEngine on
        SSLProxyEngine on
        SSLCertificateFile    /etc/apache2/ssl/jenkins.ociotec.com.cert
        SSLCertificateKeyFile /etc/apache2/ssl/jenkins.ociotec.com.key
        ProxyPreserveHost On
        ProxyPass / http://ociotec.com:8001/
        ProxyPassReverse / http://ociotec.com:8001/
    </VirtualHost>
</IfModule>

正如您在最后看到的,我的 Jenkins 在 上提供服务http://ociotec.com:8001,但由 中的 Apache 代理https://jenkins.ociotec.com

相关内容