docker搭建php+nginx+https环境

流程

  1. 把目录和文件弄出来
  2. nginx配置可以挂载文件夹,php的不行,php配置目录有默认配置文件,可以直接挂载文件进去
  3. 执行两条docker run命令,然后去浏览器上访问你的https域名就可以了
  4. 失败的话自行排错(nginx证书目录可能需要777权限)

需要用到的文件和目录结构

pros
├─conf 配置目录
│  ├─nginx nginx配置目录
│  │  ├─my.conf 具体配置文件(这个没有限制,my.conf只是作为示例使用)
│  │
│  ├─php php配置目录
│  │  ├─my.ini php配置文件 (php配置不是必须的,不做示例)
│
├─cert 证书目录
│  ├─nginx-ssl ssl证书目录
│  │  ├─a.com.key
│  │  ├─a.com.pem
│
├─www 项目目录
│  ├─index.php 测试文件
│

my.conf

server {
    # 无证书配置
    # listen 80 ssl default_server;
    # listen [::]:80 ssl default_server;

    # ssl配置
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    ssl_certificate /pros/cert/nginx-ssl/a.com.pem;
    ssl_certificate_key /pros/cert/nginx-ssl/a.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;

    root /usr/share/nginx/html;

    index index.html index.php;

    server_name _;

    location / {
        fastcgi_pass   php1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

index.php

<?php
echo '<h1>测试</h1>';

通讯网络

# 不想用网络实现容器互联的话,可以用 --link
docker network create -d bridge my-net

php

docker run -itd --name php1 \
    -v /pros/www:/www:ro \
    -v /pros/conf/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini \
    --network my-net \
    php:7.4-fpm

# 分析
# 挂载项目
-v /pros/www:/www:ro 
# 挂载配置
-v /pros/conf/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini
# 使用通讯网络
--network my-net

nginx

docker run -itd -p 443:443 \
    --name nginx1 \
    -v /pros/www:/usr/share/nginx/html:ro \
    -v /pros/conf/nginx1:/etc/nginx/conf.d:ro \
    -v /pros/cert/nginx-ssl:/pros/cert/nginx-ssl \
    --network my-net \
    nginx

# 分析
# 挂载项目地址(这个不是必须的,外部访问到的是php下边的项目文件)
-v /pros/www:/usr/share/nginx/html:ro
# 挂载配置
-v /pros/conf/nginx1:/etc/nginx/conf.d:ro
# 挂载证书目录(没有证书的不需要挂载这个,同时配置要也去掉ssl配置)
-v /pros/cert/nginx-ssl:/pros/cert/nginx-ssl
# 使用通讯网络
--network my-net
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值