docker安装nignx并配置https

一、生成密钥和证书

可以使用openssl或者cloudflare进行生成,根证书和key分别保存为server.crt和server.key

二、编辑虚拟主机配置文件

注意:没有创建的文件夹需要创建对应的文件夹
文件名为:dev.conf

<VirtualHost *:443>
    DocumentRoot "/var/www/html/"
    ServerName 你申请的域名
    SSLEngine on
    SSLCertificateFile "/etc/apache2/ssl/server.crt"
    SSLCertificateKeyFile "/etc/apache2/ssl/server.key"
</VirtualHost>

三、构造Dockerfile文件

传入server.crt server.key 在/etc/apache2/ssl/目录下
传入dev.conf 在/etc/apache2/sites-enabled/目录下
在/etc目录下,创建Dockerfile文件,文件内容如下

FROM php:7.1-apache
RUN apt-get update &&     apt-get install -y         zlib1g-dev
COPY server.crt /etc/apache2/ssl/server.crt
COPY server.key /etc/apache2/ssl/server.key
COPY dev.conf /etc/apache2/sites-enabled/dev.conf
RUN docker-php-ext-install mysqli pdo pdo_mysql zip mbstring
RUN a2enmod rewrite
RUN a2enmod ssl
RUN service apache2 restart

四、构建运行Docker镜像

docker build .
之后会得到一个镜像版本号
481bd434bfda
然后运行如下命令
docker run -p 80:80 -p 443:443 -v /var/www/html:/var/www/html -itd 481bd434bfda apache2-foreground

五、写入php等文件

将php和html和js文件,传入/var/www/html目录下
运行如下命令:docker exec -it 291b81566543 /bin/bash,进入docker内部环境
在/var/www/html目录下,运行chmod 777 * 修改文件执行权限

docker安装nignx并配置https

上一篇:ajax各种属性


下一篇:iframe中嵌套threejs使用TrackballControls时touch事件报错