1.安装nginx
- 随便启动一个 nginx 实例,只是为了复制出配置
a. docker run -p 80:80 --name nginx -d - 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx . 别忘了后面的点
- 修改文件名称:mv nginx conf 把这个 conf 移动到/mydata/nginx 下
- 终止原容器:docker stop nginx
- 执行命令删除原容器:docker rm $ContainerId
- 创建新的 nginx;执行以下命令
docker run -p 80:80 -p 443:443 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx
2.配置ssl
将下载好的文件 .key和.crt放置到\mydata\nginx\conf\ssl中,其文件目录为:
编写配置文件,注意配置文件为nginx.conf,因为文件内有include /etc/nginx/conf.d/*.conf;
因此我们需要在default.conf文件下写
server {
#SSL 访问端口号为 443
listen 80;
listen 443 ssl;
#填写绑定证书的域名
server_name 你的域名;
#证书文件名称
ssl_certificate 证书文件;
#私钥文件名称
ssl_certificate_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;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
#进行转发
location ~/user/{
proxy_pass http://xx.xx.xx:9001;
autoindex_localtime on;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex_localtime on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
然后进行重启
docker restart nginx
出现的问题
- 如果启动失败,有可能是两个ssl文件没有挂载过去,可以使用命令
docker cp 你的文件地址 nginx:/etc/nginx/
- 证书文件出现问题
证书的格式应该为,要注意是否有TRUSTED
-----BEGIN TRUSTED CERTIFICATE-----
主要内容
-----END TRUSTED CERTIFICATE-----