Docker快速部署Nginx HTTPS全攻略,《网络爬虫技术规范与应用指南系列》(xc—4)。
·
Docker 部署 Nginx 并启用 HTTPS 的完整流程
环境准备
确保已安装 Docker 和 Docker Compose。可通过以下命令验证版本:
docker --version
docker-compose --version
创建项目目录结构
新建一个项目目录,包含以下子目录和文件:
/nginx-docker
├── docker-compose.yml
├── nginx/
│ ├── nginx.conf
│ ├── conf.d/
│ │ └── default.conf
│ └── ssl/
│ ├── cert.pem
│ └── cert.key
└── html/
└── index.html
生成 SSL 证书
使用 OpenSSL 生成自签名证书(生产环境建议使用 Let's Encrypt):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout nginx/ssl/cert.key -out nginx/ssl/cert.pem
配置 Nginx 配置文件
编辑 nginx/conf.d/default.conf 启用 HTTPS:
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
location / {
root /usr/share/nginx/html;
index index.html;
}
}
server {
listen 80;
server_name localhost;
return 301 https://$host$request_uri;
}
编写 Docker Compose 文件
docker-compose.yml 内容示例:
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/ssl:/etc/nginx/ssl
- ./html:/usr/share/nginx/html
restart: always
启动容器
运行以下命令启动服务:
docker-compose up -d
验证部署
访问 https://localhost 应看到 Nginx 默认页面或自定义的 index.html。浏览器会提示证书不安全(自签名证书正常现象),高级选项中继续访问即可。
生产环境优化建议
- 使用 Let's Encrypt 的 certbot 获取受信任证书
- 在
nginx.conf中配置 TLS 1.2/1.3 和加密套件 - 启用 OCSP Stapling 提升性能
- 通过
docker logs <container_id>监控日志
证书自动续期方案
对于 Let's Encrypt 证书,可通过 cron 任务定期执行:
docker run --rm --name certbot \
-v "/path/to/certs:/etc/letsencrypt" \
certbot/certbot renew
更多推荐
所有评论(0)