一、docker安装nginx(不安装证书)
1、下载镜像
docker pull nginx:1.20.1
2、创建临时容器
docker run -p 80:80 --name nginx -d nginx:1.20.1
3、将配置文件复制出来
#创建文件夹
mkdir -p /data/nginx/conf
#配置文件复制
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/
docker cp nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf/
4、删除临时容器
docker stop nginx
docker rm nginx
5、创建正式使用的容器
docker run -p 80:80 --name nginx --restart=always \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/conf:/etc/nginx/conf.d \
-d nginx:1.20.1
-d -> 以守护进程的方式启动容器
-v -> 挂载
-p 80:80 -> 绑定宿主机端口
--name nginx -> 指定容器名称
--restart=always -> 开机启动
二、docker安装nginx并安装证书
1、下载镜像
docker pull nginx:1.20.1
2、创建临时容器
docker run -p 80:80 --name nginx -d nginx:1.20.1
3、将配置文件复制出来
#创建文件夹
mkdir -p /data/nginx/conf
mkdir -p /data/nginx/ssl
#配置文件复制
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/
docker cp nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf/
4、删除临时容器
docker stop nginx
docker rm nginx
5、下载证书并上传到服务器
1、在你自己申请证书的页面下载证书
2、将证书上传到该目录下
6、修改配置文件
1、在/data/nginx/conf下添加ssl.conf 配置文件
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name cloud.tencent.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
2、修改/data/nginx/conf下的default.conf 配置文件
#HTTP 自动跳转 HTTPS 的安全配置(可选)
server {
listen 80;
#自己的域名
server_name xxx.com;
return 301 https://$host$request_uri;
}
7、创建正式使用的容器
docker run -p 80:80 -p 443:443 --name nginx --restart=always \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/conf:/etc/nginx/conf.d \
-v /data/nginx/ssl:/etc/nginx/ssl \
-d nginx:1.20.1
-d -> 以守护进程的方式启动容器
-v -> 挂载
-p 80:80 -> 绑定宿主机端口
--name nginx -> 指定容器名称
--restart=always -> 开机启动