问题出现在部署nextcloud的时候,我希望使用一个nginx去反向代理多个应用,被代理的各个应用都在docker里,这时候有两种方案:
“方案 1
在单主机上运行一个真实的 Nginx(不在容器时运行),作为反向代理服务器。它针对不同的域名请求,转发给相应的容器。
方案 2
在单主机上运行一个容器 Nginx 作为代理服务,在启动该代理服务容器时,必须通过 –link 将所有的 Web 应用容器关联过来。由于 Docker 容器关联的实现方式,每次 Web 应用容器重启上,都必须要重启代理服务容器,这将影响到其它 Web 容器的可用性。因此不考虑使用这种方案。” 引自https://www.atjiang.com/multiple-domains-deploy-via-dockers-nginx/
为什么用方案1?
如果使用一个docker里面的nginx作为reverse proxy,它无法访问到主机的端口,只能访问到它容器内部的端口,这显然不是我们想要的。这里的做法是:主机的nginx不做内容,只做负载平衡,将对应的请求转发到对应的docker里,而docker将服务端口映射到宿主机,完成与reverse proxy之间的通讯。
开始正题:
在开始部署之前,需要注意内存量是否够用,多个docker对内存的消耗是非常大的,所以为了防止内存不足,我们在这里为系统添加虚拟内存 ~4G:
使用su用户
dd if=/dev/zero of=/home/swap bs=1024 count=4096000
(实际上4G应该是4096*1024,这里取近似)
mkswap /home/swap
3. 用swapon挂载swap文件:
swapon /home/swap
4. 防止重启后失效:
vim /etc/fstab
添加/home/swap swap swap default 0 0
5. free -m查看内存使用情况,这时候已经可以看到swap内存被成功挂载了
未完待续。。。
搬运我的博客https://blog.cybertaotao.com/?p=24
原文链接:https://blog.csdn.net/weixin_41262316/article/details/102694272