全文目录,一步到位
1.前言简介
1.1 专栏传送门
1.1.1 本文简介
2. docker安装nginx支持ssl
2.0 准备ssl证书(例: 阿里云)
2.0.1 配置域名解析
2.0.2 找到数字证书管理服务并签发ssl证书
2.0.3 选择默认证书 填写域名 创建
2.0.4 提交审核, 签发成功
2.0.5 解压并上传到宿主机ssl路径下
2.1 安装docker(有跳过)
2.2 linux的操作方式
2.2.1 创建需要挂载的宿主机目录
mkdir -p /usr/local/src/docker/nginx/{conf,html,logs,ssl}
2.2.2 创建并启动nginx容器(普通版)
docker run --name nginx -p 80:80 -d nginx
2.2.3 容器复制nginx配置到宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/src/docker/nginx/conf/
docker cp nginx:/etc/nginx/conf.d /usr/local/src/docker/nginx
2.2.4 删除nginx容器
# 基础写法
docker stop nginx
docker rm nginx
# 简化写法
docker rm -f nginx
2.2.5 创建新nginx容器 配置ssl证书
docker run --name nginx -p 80:80 -p 443:443 \
-v /usr/local/src/docker/nginx/html:/usr/share/nginx/html \
-v /usr/local/src/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf/ \
-v /usr/local/src/docker/nginx/conf.d:/etc/nginx/conf.d/ \
-v /usr/local/src/docker/nginx/logs:/var/log/nginx \
-v /usr/local/src/docker/nginx/ssl:/etc/nginx/ssl \
--privileged=true -d --restart=always nginx
参数解释
2.2.6 修改nginx.conf配置
`(坑)特别注意: 配置路径必须是容器内的路径`http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/default.d/*.conf;
server {
listen 80;
#填写绑定证书的域名
server_name test.*.cn;
#把http的域名请求转成https,相当于用户访问http也可以自动跳转到https,避免出现网页提示不安全
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mkdd.aisce.net;
#证书文件名称
ssl_certificate_key /etc/nginx/ssl/test.*.cn.key;
#私钥文件名称 .crt和.pem都可以用
ssl_certificate /etc/nginx/ssl/test.*.cn.pem;
ssl_session_timeout 5m;
ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /aaa/ {
proxy_set_header host $http_host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header remote-host $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_pass http://localhost:9666/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
2.3 查看日志与容器方法
2.3.1 查看容器日志
cd /usr/local/src/docker/nginx/logs
docker container logs -f access.log
docker container logs -f error.log
2.3.2 检查目录挂载是否成功
docker exec -it nginx bash
2.3.3 最终效果
[操作结束]
3. 文章的总结与预告
3.1 本文总结
@author: pingzhuyan
@description: ok
@year: 2024
发表评论