美文网首页docker我用 LinuxDocker容器
为“复杂”的容器环境配置Nginx反向代理

为“复杂”的容器环境配置Nginx反向代理

作者: 左蓝 | 来源:发表于2016-02-22 22:43 被阅读1313次

    场景:现有几台服务器,各部署有十几到数十个Docker容器,容器相互之间独立没有关联,每个容器各自暴露一个到几十个端口不等,而且部分容器端口是随机的。


    任务:把全部容器绑定到一个域名之下。


    不废话,十条命令之内解决这件事。

    第一步:拉取nginx,这里用的是tutum公司的镜像,这个公司的镜像质量都很高。

    docker pull tutum/nginx
    

    第二步:根据Dockerfile开了两个数据卷,方便写配置以及部署应用。

    docker run -d -p 80:80 -v /**path**/app/:/app/ -v /**path**/nginx/sites-enabled:/etc/nginx/sites-enabled tutum/nginx
    
    

    第三步:编辑/**path**/nginx/sites-enabled/default文件如下:

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
    
        root /app;
        index index.html index.htm;
    
        server_name localhost;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    # 上面是默认的不用管也可以。
    server
    {
        listen 80;
        server_name lab.example.com; # 这里填自定义域名
        location / {
            proxy_redirect off;
            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_pass http://172.17.0.3:8181; # 这里填容器地址,如果不知道填写公网IP也是可以的。
        }
    }
    

    暂时先这样,端口多变还没有解决,有时间补上。

    参考资料

    相关文章

      网友评论

        本文标题:为“复杂”的容器环境配置Nginx反向代理

        本文链接:https://www.haomeiwen.com/subject/xodmkttx.html