首页 » 网站推广 » nginx署理php多个运用技巧_运用 nginx 反向代理多个 docker 容器

nginx署理php多个运用技巧_运用 nginx 反向代理多个 docker 容器

访客 2024-10-30 0

扫一扫用手机浏览

文章目录 [+]

之前先容 docker 的时候说过它的上风之一,便是可以在同一做事器中搭建多个环境,相互隔离。
昨天就实际操作下,切切没想到如此多的坑,比之前从零开始搭建做事器都费韶光。
变换了好几种方案,终极还是办理了,中间的心伤就忽略吧,直接说操作方法。

架构

nginx署理php多个运用技巧_运用 nginx 反向代理多个 docker 容器

做事器中已存在的是 laradock 镜像,可以运行 laravel 环境以及其他的 PHP,包含了 nginx、mysql、redis 等。

nginx署理php多个运用技巧_运用 nginx 反向代理多个 docker 容器
(图片来自网络侵删)

我的想法是再添加一个 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 容器的详细内容,更多请关注其它干系文章!

更多技巧请《转发 + 关注》哦!

标签:

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读1 评论0