使用nginx反向代理实现dnslog平台通过域名访问,并为该域名添加ssl证书,提升自行搭建dnslog平台的安全性。
文章分为三部分:第一部分nginx反代配置、第二部分cloudflare域名解析配置、第三部分证书安装。
前置信息:
1、dnslog平台部署在8000端口,dnslog平台项目地址:https://github.com/lanyi1998/DNSlog-GO
2、通过bash命令安装并启动nginx,默认没有/etc/nginx/sites-available/和/etc/nginx/sites-enabled/目录
3、使用cloudflare进行CDN解析的配置已完成
nginx反向代理配置
手动创建目录
首先创建/etc/nginx/sites-available/和/etc/nginx/sites-enabled/目录
代码语言:bash复制sudo mkdir -p /etc/nginx/sites-availablesudo mkdir -p /etc/nginx/sites-enabled
打开并更新 nginx.conf配置文件内容
代码语言:bash复制sudo nano /etc/nginx/nginx.conf
添加以下内容,确保 Nginx 包含 sites-enabled 目录中的配置文件:
代码语言:bash复制include /etc/nginx/sites-enabled/*;
保存并退出
代码语言:bash复制Ctrl o #保存
Ctrl X #退出
配置Nginx进行反向代理
创建你的网站的配置文件
代码语言:bash复制sudo nano /etc/nginx/sites-available/--your_domain--
在配置文件中添加如下内容:
代码语言:bash复制server {
listen 80;
server_name --your_domain--;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /var/log/nginx/dnslog_access.log;
error_log /var/log/nginx/dnslog_error.log;
}
启用站点配置
代码语言:bash复制sudo ln -s /etc/nginx/sites-available/--your_domain-- /etc/nginx/sites-enabled/
配置完成后,检查配置是否正确
代码语言:bash复制 nginx -t
重启 Nginx
代码语言:bash复制sudo systemctl restart nginx
cloudflare域名解析配置
添加子域名的A记录
添加子域名的A记录
证书安装
使用Let's Encrypt免费SSL证书:
安装Certbot:Certbot是用于获取免费SSL证书的工具
代码语言:bash复制sudo apt install certbot python3-certbot-nginx
获取并自动配置SSL证书:Certbot可以自动获取证书并配置Nginx,执行命令后需要填写邮箱进行确认
代码语言:bash复制sudo certbot --nginx -d --your_domain-- -d --www.your_domain--
自动续订SSL证书
代码语言:bash复制sudo crontab -e
添加以下行以每天检查并自动续订
代码语言:bash复制0 3 * * * certbot renew --quiet
完成以上所有操作后,可为自行搭建的dnslog平台添加域名和证书。
声明
所有内容的初衷只是分享本人的学习收获,对于因读者不当使用或修改本文内容的任何损失,作者不承担任何直接或间接的连带责任。
文章内容如有不妥,烦请大家联系修改,谢谢大佬们批评指正。