Docker 部署 Nginx 并启用 HTTPS 的完整流程
准备工作
确保已安装 Docker 和 Docker Compose。生成 SSL 证书的工具有多种选择,如 Let's Encrypt 或 OpenSSL。以下以 OpenSSL 为例:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout nginx.key -out nginx.crt
配置 Nginx
创建 nginx.conf 文件,配置 HTTP 重定向和 HTTPS 监听:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
编写 Dockerfile
创建自定义镜像以包含配置文件和证书:
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY nginx.crt /etc/nginx/ssl/nginx.crt
COPY nginx.key /etc/nginx/ssl/nginx.key
使用 Docker Compose 部署
创建 docker-compose.yml 文件:
version: '3'
services:
nginx:
build: .
ports:
- "80:80"
- "443:443"
volumes:
- ./html:/usr/share/nginx/html
启动服务
执行以下命令构建并运行容器:
docker-compose up -d --build
验证 HTTPS
访问 https://yourdomain.com,浏览器应显示安全锁标志。若使用自签名证书,需手动信任证书。
证书自动更新(可选)
对于 Let's Encrypt 证书,可使用 Certbot 容器自动续期。修改 docker-compose.yml 加入 Certbot 服务并配置定时任务。
通过以上步骤,Docker 化的 Nginx 服务已配置 HTTPS,具备生产环境可用性。实际部署时需替换域名和证书路径为真实值。
3898

被折叠的 条评论
为什么被折叠?



