[英]Jenkins behind nginx forwarding port 8081 --> 8081 not working
我在Docker容器中运行Jenkins,并配置了nginx(在另一个容器中运行)以充当反向代理。 我的目标是使运行Docker引擎的主机上的端口8081
上可访问Jenkins(在其容器的端口8080
上侦听)。
所以我基本上想要做的是使用nginx将所有请求转发到localhost:8081
到jenkins-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.