Nginx 是放在 docker 里面跑,还是放在宿主机上跑

2017-08-19 22:23:21 +08:00
 thisisgpy

需要通过 Nginx 来转发请求到不同的 docker 容器里,这个 Nginx 是单独跑成一个容器,还是直接在宿主机上安装?一直没有想明白这个问题。如果放在 docker 里面,改了 nginx.conf 文件后,要么重新 run 容器,要么进容器 reload config,感觉怪怪的呀。

7632 次点击
所在节点    问与答
9 条回复
ryd994
2017-08-19 23:07:33 +08:00
我是放外面跑的,因为 Nginx 一般安全性问题不大,而且要连接各个容器,可以算个 gateway
但是里面看情况也是要用的,一般用作 load balance
进容器 reload 没啥大问题啊,你可以 docker exec,也可以 kill -HUP
Showfom
2017-08-19 23:09:58 +08:00
直接宿主机跑
moult
2017-08-19 23:46:25 +08:00
感觉 Docker 适合需要动态扩容的情况下用,可以快速创建一个新的节点。
单实例运行或者环境变动频繁的,稍微改一下配置就要经历开关机过程,有点麻烦。
yuanfnadi
2017-08-20 00:24:19 +08:00
我放容器里 用 daocloud。
配置文件放 git 然后每次更新配置文件,自动打包新的镜像,然后自动发布并且重启。
好处是换机器基本上可以一键切换。
yangxuan8282
2017-08-20 01:26:16 +08:00
可以参考下 https://github.com/jwilder/nginx-proxy
这个项目是用容器里的 nginx 反向代理其他容器,用到了作者的另一个项目 docker-gen,可以根据其它容器的 environment 自动生成 nginx 的配置文件,一旦有新的容器启动或停止就自动重新生成配置文件,这样就不需要你说的修改容器里的 nginx 配置文件,然后再重新 run 了
SgtDaJim
2017-08-20 02:51:12 +08:00
我是刚开始用 docker 的小白。。然后我 nginx 是放容器里面的。。然后配置目录用 docker run 的 -v 参数映射进容器。。修改配置的时候直接宿主机修改。。修改完了就 docker exec nginx-container "/usr/sbin/nginx -s reload"。。不知道这样合理不合理。。 求各位大神指教。。
brickyang
2017-08-20 08:14:14 +08:00
外面。Nginx 不需要配置环境,换机器也就是安装一下的事,放 Docker 没带来什么实际的好处。
ryd994
2017-08-20 08:23:19 +08:00
@SgtDaJim docker-compose + 某种 auto-discovery 更好
powergx
2017-08-20 11:37:00 +08:00
-v 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384254

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX