怎么用Docker搭建一个支持https的nginx代理服务
准备工作
在使用Docker搭建支持https的nginx代理服务之前,我们需要做一些准备工作:
1. 确保你已经安装了Docker和Docker Compose。
2. 你需要有一个域名,并且需要将该域名解析到你的服务器IP地址,以便后续申请证书。
生成SSL证书
为了支持https,我们需要生成SSL证书。下面是一种快速生成免费SSL证书的方法:
1. 打开终端,执行以下命令:
docker run -it --rm \
-v "${PWD}/certbot:/etc/letsencrypt" \
-v "${PWD}/certbot/www:/var/www/certbot" \
certbot/certbot certonly
2. 这个命令会启动一个certbot容器,并通过交互式命令行引导你申请证书。按照提示输入邮箱地址和域名,并选择Standalone方式进行验证。
3. 证书生成完成后,你可以在certbot/www目录下找到生成的证书文件。
配置nginx反向代理
现在我们来配置nginx反向代理,并将之前生成的SSL证书应用到nginx上:
1. 创建一个Docker Compose文件,内容如下:
version: '3'
services:
nginx-proxy:
image: nginx
ports:
- 80:80
- 443:443
volumes:
- ./certbot/www:/var/www/certbot
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certbot/letsencrypt:/etc/letsencrypt
2. 创建一个nginx.conf文件,内容如下:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 443 ssl;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
3. 将上面两个文件放到同一个目录下,并在终端运行以下命令启动容器:
docker-compose up -d
此时,你已经成功搭建了一个基于Docker的支持https的nginx代理服务。你可以通过访问https://your-domain.com来验证是否生效。
上一篇
ES的基本概念是什么 猜您想看
-
LeetCode如何解决第k个排列问题
解决第k个排列...
2023年07月20日 -
如何在 Typecho 博客程序中设置阅读次数统计
.如何在 Ty...
2023年04月15日 -
JavaScript公共库event-stream被植入恶意代码预警的示例分析
示例分析:ev...
2023年07月23日 -
电脑上的游戏中断怎么处理?
如何处理电脑上...
2023年04月24日 -
互联网中搜索引擎如何识别链接作弊的示例分析
一、什么是链接...
2023年05月22日 -
宝塔面板中如何设置服务器防火墙
宝塔面板(BT...
2024年05月30日