我有一台 Azure Ubuntu 18.04 服务器。我在服务器上安装了 Docker 和 Jenkins。我想通过端口 8080 从本地计算机访问 Jenkins。但是,我无法使用公共 IP 地址访问 Jenkins。为此,我安装了 NGINX 来转发请求。
我的当前设置如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
130a16aa29c4 jenkinsci/blueocean "/sbin/tini -- /usr/…" 5 hours ago Up 2 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins-blueocean
177e47ae908f docker:dind "dockerd-entrypoint.…" 5 hours ago Up 15 seconds 2375/tcp, 0.0.0.0:2376->2376/tcp jenkins-docker
1fa2d5ea5e53 nginx "/docker-entrypoint.…" 5 hours ago Up 36 seconds 0.0.0.0:80->80/tcp mynginx1
需要做什么才能从本地机器访问 Jenkins?
答案1
我遵循了 Juriy Bura 的宝贵指导在 CentOS 上安装和配置 NGINX
在 NGINX 容器中,我创建了一个具有以下参数的 jenkins.conf 文件:
server {
listen 80;
listen [::]:80;
server_name MY.SERVER.IP.ADDRESS;
location / {
proxy_pass "http://INTERNAL.I.P.ADDRESS:8080";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
该文件存储在位置/etc/nginx/conf.d/jenkins.conf
。在此位置,任何带有 .conf 的文件都将被 nginx 读取。您可以创建自定义文件并添加自己的外部和内部 IP 地址。