我已经在 ubuntu 21 机器上安装了 nginx 和 jenkins。
使用本步骤配置 nginx,将 80 流量重定向到 8080关联
现在,能够将流量从 80 重定向到 8080。因此,要禁用从外部 8080 直接访问 jenkins。更改了 /etc/default/jenkins 中的参数以添加行 --httpListenAddress=127.0.0.1
现在,詹金斯参数行如下。
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --httpListenAddress=127.0.0.1"
然后,重新启动机器,但仍然能够直接通过 8080 端口访问。
请建议如何实现这一点。
azureuser@jenkins:~$ ss -lnpt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 *:3000 *:*
LISTEN 0 50 *:8080 *:*
LISTEN 0 128 [::]:22 [::]:*
azureuser@jenkins:~$ ps auxw | grep jenkins
jenkins 6761 0.1 11.8 3036280 416756 ? Ssl Mar29 8:08 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
azureus+ 86025 0.0 0.0 8548 2356 pts/0 S+ 19:09 0:00 grep --color=auto jenkins
答案1
/etc/default/jenkins
由于某种原因,您的 Jenkins 命令行不包含设置的选项。
请仔细检查是否JENKINS_ARGS
正确并包含选项。尝试重新启动 Jenkins。
答案2
根据这答案是,/etc/default/jenkins
文件在最近的 Jenkins 版本中不再使用。您需要更新 Jenkins systemd 服务才能实现您的目标:
/lib/systemd/system/jenkins.service
通过文本编辑器打开。- 找到包含 Jenkins 监听地址环境变量的行:
#Environment="JENKINS_LISTEN_ADDRESS="
- 删除注释并用本地 IP 更新变量值:
Environment="JENKINS_LISTEN_ADDRESS=127.0.0.1"
- 保存文件并重新加载 systemd 单元文件:
systemctl daemon-reload
- 重启詹金斯:
systemctl restart jenkins
詹金斯现在应该在本地主机上监听:
$ netstat -plunt | grep 8080
tcp6 0 0 127.0.0.1:8080 :::* LISTEN 11661/java