说明:
1.php容器为了能与nginx容器通信,网络模式需要设置为container,与nginx共用网卡。为确保php容器的正常启动,需要设置容器间的启动顺序,也就是依赖,因此添加了 depends_on字段,以确保先启动nginx容器,之后再启动php容器。
2.为了保存网站数据,需要设置存储映射。html目录下存在网站文件,conf目录下存放nginx配置文件,log目录下存放日志文件。本文中的示例是一个容器内配置了两个网址,故存储映射分别做了两遍。为了确保php也能访问到网站数据,需要在php容器中进行html目录的映射。
3.开启https需要配置公钥与私钥,相关配置需要在nginx配置中修改。
4.nginx与php通信有两种方式。一种是通过9000端口,这需要php监听9000端口。当nginx发现有php访问请求时会把该请求转发给9000端口,php监听到请求后处理请求然后将处理结果返回给nginx,nginx再将结果返回给用户。另一种方式是使用sock文件。
5.对小网站而言两种处理php请求的效率区别不大,但在高并发大访问量的网站中,使用sock文件来处理php请求效率会高一些。
version: "2"
services:
nginx:
container_name: nginx
image: nginx:latest
environment:
- TZ=Asia/Shanghai
ports:
- 80:80
- 443:443
volumes:
- /website/html/:/usr/share/nginx/html/
- /website/conf/:/etc/nginx/conf.d/
- /website/log/:/var/log/nginx/
- /website/doc_html/:/usr/share/nginx/doc_html/
php:
container_name: php
image: php:7.4-fpm
volumes:
- /website/html/:/usr/share/nginx/html
- /website/doc_html/:/usr/share/nginx/doc_html/
network_mode: "container:nginx"
restart: always
depends_on:
- nginx
评论 (0)