docker搭建nginx与php的compose文件
标签搜索

docker搭建nginx与php的compose文件

mrui
2023-12-29 / 0 评论 / 60 阅读 / 正在检测是否收录...

说明:

 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

评论 (0)

取消