Jenkins sous Apache

De EjnTricks

Cet article présente la configuration mise en place sur un serveur Apache pour une instance de Jenkins.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Configuration-icon.png Configuration simple

La première configuration mise en place a été réalisée sur un serveur Apache simple, à savoir qu'il était utilisé pour un seul site. Dans ce cas, et pour une installation sous Ubuntu, les paramètres ont été mis en place dans le fichier /etc/apache2/httpd.conf.

ProxyPass /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://localhost:8080/jenkins

<Proxy http://localhost:8080/jenkins>
  Order allow,deny
  Allow from all
</Proxy>

Dans ce cas, toutes requêtes sur /jenkins seront redirigées vers l'application Jenkins hébergée sur un Tomcat en local.


Configuration-icon.png Configuration pour un domaine spécifique

Au fil du temps, le serveur Apache a été enrichi sur la machine, afin de servir différents domaine. La première configuration mise en place rendait l'application disponible sur l'ensemble des domaines, chose qui n'était pas souhaitée. La configuration dans le fichier /etc/apache2/httpd.conf a été déplaçée dans le fichier de configuration du domaine souhaité, à savoir /etc/apache2/sites-enabled/002-dev.conf, pour le domaine dev.jouvinio.net

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/default
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/default>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                # Old configuration for APACHE 2.2
                # Order allow,deny
                # allow from all
                Require all granted
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                # Old configuration for APACHE 2.2
                # Order allow,deny
                # Allow from all
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

        ProxyPass /jenkins http://localhost:8080/jenkins
        ProxyPassReverse /jenkins http://localhost:8080/jenkins
        <Proxy http://localhost:8080/jenkins>
                Order allow,deny
                Allow from all
        </Proxy>

</VirtualHost>

Ainsi l'application Jenkins ne sera disponible que pour ce domaine.


Warning-icon.png Configuration Reverse Proxy

Suite à la mise à jour 1.552, une erreur de reverse proxy est indiqué dans la page d'administration.


Le message indique une erreur de configuration du mode Reverse Proxy

La configuration de votre proxy inverse n'est pas bonne

La documentation officielle, https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache, indique la configuration à mettre en place afin de ne plus avoir ce message d'erreur.

La configuration Apache mise en place prend en compte les directives.

ProxyPass /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8080/jenkins>
  Order allow,deny
  Allow from all
</Proxy>


Viewer icon.png Voir aussi

Documentation officielle : https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache