关于nginx反向代理docker中容器的配置的问题


最近由于工作需要,需要安装gitlab和redmine,我的服务器是ubuntu server14.04的版本,我在服务器中安装了docker,并且在docker上安装了gitlab:7.12.0-2和redmine:3.0.4,我的gitlab和redmine安装的时候publish了10180的端口和10083端口,在我们客户端的浏览器中输入http://serverip:10180http://serverip:10083是可以很好的访问这两个东西的,docker的ip地址是172.17.42.1。但是公司要求使用nginx去做反向代理,就是在客户端的浏览器中输入http://serverip/gitlabhttp://serverip/redmine要能跳转到docker中相应的容器中,并且很好的访问服务器上gitlab和redline,小弟我无能,弄了很久了还是尚未搞定!也试了很多解决方案!还望大神不吝赐教,教我如何配置docker或者nginx或者nginx.conf文档,使之能符合要求的工作!小弟定当不胜感激!在此先谢过!
已邀请:

tuxknight

赞同来自:


nginx不太懂,既然你把端口publish出来了,那么相当于serverip:10180 serverip:10083就是你的服务地址了,然后在nginx中配置代理的时候就用这个地址。

给个示例吧
在nginx的site-enabled里创建文件gitlab和redmine
<pre>
cat gitlib
upstream gitlab_server {
server serverip:10180 fail_timeout=0;
}

server {
listen 80;
listen :80 default ipv6only=on;
server_name ci.yourcompany.com;

location /gitlab {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;

if (!-f $request_filename) {
proxy_pass http://gitlab_server;
break;
}
}
}

</pre>
类似这样的配置

wangh

赞同来自:


这里proxy_pass http://gitlab_server;这个事docker的ip地址还是服务器的ip地址了了?

轻舟 - 学习、进步

赞同来自:


你好,现在我也碰到这个问题了,请问如何解决啊

要回复问题请先登录注册