小编odi*_*die的帖子

通过 nginx 代理将 hudson 映射到子域

我现在正在尝试将 nginx 设置为 Hudson 的反向代理,以便它可以访问

http://build.example.com
直接地。我已经在 Tomcat 上安装了 Hudson 并验证我可以访问 Hudson
http://127.0.0.1:8080/hudson

http://build.example.com/hudson上访问可以访问 hudson 的地方非常简单。但是当我尝试设置代理以重新映射 /hudson 目录时,事情开始出错。没有加载任何 css 或图像文件。

快速查看 nginx 访问日志告诉我,对 /hudson 或 /hudson/static 中的资源发出了大量请求。这些请求没有被正确地转发(或重写)到 Tomcat。但是在挖掘了几个小时之后,我不知道如何解决这个简单的问题。

我正在使用的 nginx 设置看起来像

server {
    listen          80;
    server_name     build.example.com;
    location / {
        proxy_pass        http://127.0.0.1:8080/hudson;
        proxy_set_header  Host             $http_host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?设置非常简单,但我似乎无法在网上的任何地方找到解决方案。

更新

我衷心感谢所有花时间回答这个问题的人。在尝试了各种解决方案之后,我认为处理这个特定问题的最直接的方法是……

A)不要管它正如@VonC 建议的那样,让它留在子目录中。这是直截了当的,我们可以确定不会有任何问题。或者...

B)将应用程序部署到 tomcat webapp 目录的 ROOT如果您想通过 tomcat 安装托管多个webapp,这可能不是最好的处理方式。但是管理员可能想要设置一个单独的 tomcat 安装来运行 Hudson/Jenkins。Tomcat 无法以不同的用户身份运行不同的托管应用程序,并且任何为 CI 设置 Hudson/Jenkins 的人都可能希望以特定用户身份运行它(例如“构建”)。在这种情况下,在 ROOT …

tomcat nginx reverse-proxy hudson jenkins

6
推荐指数
1
解决办法
6031
查看次数

标签 统计

hudson ×1

jenkins ×1

nginx ×1

reverse-proxy ×1

tomcat ×1