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

场景:现有几台服务器,各部署有十几到数十个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也是可以的。
    }
}

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

参考资料

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容