网站首页 > 技术教程 正文
导语
之前介绍 docker 的时候说过它的优势之一,就是可以在同一服务器中搭建多个环境,互相隔离。昨天就实际操作下,万万没想到如此多的坑,比之前从零开始搭建服务器都费时间。变换了好几种方案,最终还是解决了,中间的心酸就忽略吧,直接说操作方法。
架构
服务器中已存在的是 laradock 镜像,可以运行 laravel 环境以及其他的 PHP,包含了 nginx、mysql、redis 等。
我的想法是再添加一个 nginx 容器,用来做反向代理。根据子域名进行分发,可以分发给 laradock,也可以给其他任何容器(包括 wordpress、python、java)等等
修改 lradock
要修改的只有一个地方,就是 nginx 监听的端口。
1.进入到 laradock 目录中
2.修改 .env 文件,修改 NGINX_HOST_HTTP_PORT 值由 80 为 8000
3.停止 nginx, docker-compose stop nginx
4.重装 nginx,docker-compose build nginx
5.启动 docker-compose up -d nginx
这个时候在浏览器中是不能访问成功的,因为 nginx 已经不再监听 80 端口。
添加 nginx 容器
新添加一个 nginx 容器用来做反向代理。在安装 laradock 的时候,已经有了 nginx:alpine 的镜像,可以直接生成容器。当然你也可以重新 pull 一个新的镜像。(推荐使用 alpine版本)
1.查看 nginx 镜像 ID,docker iamges
2.生成新的 ngixn 容器, docker run --name proxy_nginx -p 80:80 -d [nginx image id]。也可以添加 -v 参数来映射配置文件,我的环境较少变动就不需要了
3.此时在浏览器中访问,应该是 nginx 的默认页面,说明启动成功
4.进入到生成的容器中 docker exec -it proxy_nginx sh
5.安装 vim,apk add vim
6.查看宿主机 ip,/sbin/ip route|awk '/default/ { print $3 }'
7.在 /etc/nginx/conf.d/ 目录下添加新配置文件 laradock.conf,内容如下
server { listen 80; server_name you_site; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[宿主机IP]:8000; } }
1.退出容器,然后重启 docker restart proxy_nginx
2.打开 8000 端口,参考这里
结语
这个时候访问的话,就可以代理到 laradock 中的 nginx 了。后续想要新增其他的容器,只要在 proxy_nginx 中添加新的代理规则就可以了。
以上就是使用 nginx 反向代理多个 docker 容器的详细内容,更多请关注其它相关文章!
更多技巧请《转发 + 关注》哦!
猜你喜欢
- 2024-10-11 Docker四种网络模式(Bridge,Host,Container,...
- 2024-10-11 HTTP 头字段 Origin、Host 和 Referer 有什么区别?
- 2024-10-11 每日漏洞 | Host头攻击(http头hostname攻击漏洞)
- 2024-10-11 Docker容器实战之数据持久化+网络模式+资源限制
- 2024-09-19 Nginx Proxy Manager - Docker 建站最佳伴侣
- 2024-09-19 高性能负载均衡:nginx搭建tomcat集群
- 2024-09-19 Nginx路由匹配规则location的小总结
- 2024-09-19 Nginx配置虚拟主机的三种方式(nginx虚拟主机配置文件)
- 2024-09-19 Nginx开启gzip压缩演示(nginx怎么打开)
- 2024-09-19 如何控制Nginx并发连接数(如何控制nginx并发连接数量)
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)