Plesk 上的 Jenkins + nginx 反向代理

Jenkins + nginx reverse proxy on Plesk

我在我的 centOS 服务器上 运行 Plesk Obsidian,并在其上手动安装了 Jenkins。詹金斯已经起床 运行。调用http://my-server.de:38080即可使用,没有任何问题。我还在 Plesk 中创建了一个新的子域 (jenkins.my-server.de),它使用 lets encrypt 证书进行保护。

我的想法是使用 nginx 反向代理通过新的子域调用 Jenkins:https://jenkins.my-server.de。因此,我在子域的 Plesk Apache 和 nginx 设置中禁用了 Apache,并在 Plesk web 界面中添加了以下额外的 nginx 指令:

location ~ / {
  proxy_pass          http://localhost:38080;
  proxy_read_timeout  90;

  proxy_redirect      http://localhost:38080 https://jenkins.my-server.de;
}

问题是,有些网站正在运行,而在其他网站上我收到 404。

调用 https://jenkins.my-server.de 应该会显示登录页面,但我收到 404。只有当我输入 https://jenkins.my-server.de/index 在浏览器中,我看到了登录页面。 调用 https://jenkins.my-server.de/manage on the other hand loads the wanted page without error. The page https://jenkins.my-server.de/configureSecurity 再次显示 404,并且仅当我在末尾添加 /index 时才有效。

我是否遗漏了 nginx 设置中的某些内容?

以下配置结合 Plesk 对我有效。

location ^~ / {
    proxy_set_header        Host $host:$server_port;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;

    proxy_redirect          http://localhost:38080 https://jenkins.my-server.de;
    proxy_pass              http://localhost:38080;

    proxy_http_version 1.1;
    proxy_request_buffering off;
    proxy_buffering off;
    add_header 'X-SSH-Endpoint' 'jenkins.my-server.de:50022' always;
}