Как настроить Jenkins для работы на порте 80 - PullRequest
47 голосов
/ 17 февраля 2012

Я использую Ubuntu 11.10 и запускаю sudo apt-get install jenkins для установки Jenkins в этой системе.

Однако я видел несколько руководств по настройке обратного прокси-сервера (Apache, Nginx и т. Д.).это виртуальная машина, предназначенная только для jenkins, и я бы хотел, чтобы она работала как можно меньше при работе jenkins на порту 80.

Я нашел конфигурацию upstart в /etc/init/jenkins.conf и изменил порт на 80env HTTP_PORT=80

Когда я запускаю jenkins через service jenkins start, ps показывает, что он работает в течение нескольких секунд, а затем завершается.

Это потому, что jenkins работает как пользователь jenkinsна привилегированном порту?Если так, как я могу это исправить?Любые другие идеи приветствуются.

Вот выскочка конфигурации:

description "jenkins: Jenkins Continuous Integration Server"
author "James Page <james.page@ubuntu.com>"

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

env USER="jenkins"
env GROUP="jenkins"
env JENKINS_LOG="/var/log/jenkins"
env JENKINS_ROOT="/usr/share/jenkins"
env JENKINS_HOME="/var/lib/jenkins"
env JENKINS_RUN="/var/run/jenkins"
env HTTP_PORT=80
env AJP_PORT=-1
env JAVA_OPTS=""
env JAVA_HOME="/usr/lib/jvm/default-java"

limit nofile 8192 8192

pre-start script
    test -f $JENKINS_ROOT/jenkins.war || { stop ; exit 0; }
    $JENKINS_ROOT/bin/maintain-plugins.sh   
    mkdir $JENKINS_RUN > /dev/null 2>&1  || true
    chown -R $USER:$GROUP $JENKINS_RUN || true
end script

script
    JENKINS_ARGS="--webroot=$JENKINS_RUN/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
    exec daemon --name=jenkins --inherit --output=$JENKINS_LOG/jenkins.log --user=$USER \
        -- $JAVA_HOME/bin/java $JAVA_OPTS -jar $JENKINS_ROOT/jenkins.war $JENKINS_ARGS \
        --preferredClassLoader=java.net.URLClassLoader
end script

Ответы [ 12 ]

0 голосов
/ 05 января 2017

Ни один из ответов не говорит о том, как просто перенаправить 80 на 8080 с iptables.
К счастью, комментарий dskrvk делает!

Также есть Jenkins wiki документирование этого


Мне просто нужно было скопировать / вставить эти строки в моем терминале, чтобы заставить работать перенаправление:

sudo iptables -I INPUT 1 -p tcp --dport 8443 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443

Кстати, не забудьте включитьпосле проверки скриптов инициализации вашего сервера, или вы потеряете перенаправление после перезагрузки. Проверено на Debian 8.2 (Джесси)

0 голосов
/ 25 ноября 2014

firewalld способ переадресации порта 8080 на 80:

yum install firewalld
systemctl start firewalld
chkconfig firewalld on
firewall-cmd --permanent --zone=external --change-interface=eth0
firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
...