繁体   English   中英

Jenkins在Nginx转发端口8081后-> 8081不起作用

[英]Jenkins behind nginx forwarding port 8081 --> 8081 not working

我在Docker容器中运行Jenkins,并配置了nginx(在另一个容器中运行)以充当反向代理。 我的目标是使运行Docker引擎的主机上的端口8081上可访问Jenkins(在其容器的端口8080上侦听)。

所以我基本上想要做的是使用nginx将所有请求转发到localhost:8081jenkins-docker-container:8080

基本上,一切正常,但是Jenkins似乎有时会重定向到localhost (没有端口)。 这是我所做的:

  • 我在Jenkins配置中将http://localhost:8081为Jenkins URL

  • 我使用以下nginx jenkins配置:

     server { listen 8081; server_name "localhost"; access_log off; location / { proxy_pass http://jenkins-master:8080; proxy_redirect http://jenkins-master:8080 $scheme://localhost:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-Port 8081; proxy_max_temp_file_size 0; proxy_connect_timeout 150; proxy_send_timeout 100; proxy_read_timeout 100; proxy_buffer_size 8k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } 
  • 这是我的Docker Swarm配置

      jenkinsmaster: build: jenkins-master image: michaellihs/jenkins ports: - 50000:50000 secrets: - jenkins-user - jenkins-pass volumes: - jenkinsdata:/var/log/jenkins - jenkinsconf:/var/jenkins_home - jenkinsjobs:/var/jenkins_jobs networks: nw001: aliases: - jenkins-master jenkinsnginx: build: jenkins-nginx image: michaellihs/jenkinsnginx ports: - 8081:8081 networks: - nw001 

有什么想法可以解决这个问题吗?

我不确定您应该使用proxy_redirect 我们没有设置詹金斯集,一切正常,就像这样:

location / {
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://jenkins:8080;
}

我刚刚检查了我们的设置-我们在Jenkins方面没有做进一步的配置调整(就像Jira的tomcat一样),因此您的重定向可能是由那个proxy_redirect选项引起的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM