如何设置 NGINX 将传入请求转发到 Jenkins?

如何设置 NGINX 将传入请求转发到 Jenkins?

我有一台 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 地址。

相关内容