深浅模式
配置SSL证书和反代
一、准备工作
你需要必备的内容是:
- 服务器的IP地址(本教程将以1.1.1.1举例)
- 服务器用户名(一般是root)
- 服务器密码
- 一个已经托管到cloudflare的域名。
你还需要一个SSH客户端工具,你可以参考 怎么连接你的VPS 这一篇中的 Xterminal 。对于新手、小白更加友 好。
并根据该教程,连接到你的VPS。
说明
教程中会对我的IP地址做脱敏处理,以1.1.1.1替代我的实际IP地址;
本节教程将会举例通过 jiuguan.laopobao.icu,访问 1.1.1.1:8000;
通过panel.laopobao.icu,访问 1.1.1.1:10086 (我自己设置的1panel端口是10086)。
二、安装Nginx
其实1panel自带了反代的工具 OpenResty ,提供可视化的操作界面。但是我觉得不是很好用,部分项目设置回调地址时容易出错。
还是学习一下最强的Nginx吧,一步到位。
安装前先更新系统软件包。
如果需要输入密码,就输入你服务器的登录密码。
bash
sudo apt update
sudo apt upgrade -y安装 Nginx
bash
sudo apt install nginx -y启动Nginx服务并设置为开机自启:
bash
sudo systemctl start nginx
sudo systemctl enable nginx检查一下Nginx服务的状态:
bash
sudo systemctl status nginx如果看到
active (running)字样,说明Nginx服务已成功启动。按
ctrl+c退出查看服务状态。(退出后才能接着执行其他命令)
二、配置域名DNS记录
登录到Cloudflare控制台
打开我们托管的域名(我的是laopobao.icu)

点击页面左侧的 DNS → 记录
然后在页面中点击添加记录

在域名管理界面添加A记录。
- 类型选择 A
- 名称:jiuguan(这个最终将成为域名的前缀,例如jiuguan.laopobao.icu)
- IPv4地址:写你实际的服务器IP地址,我图中的1.1.1.1是为了演示写的假IP地址。

注意
由于我们要通过 jiuguan.laopobao.icu,访问 1.1.1.1:8000(酒馆);
通过 panel.laopobao.icu,访问1.1.1.1:10086,所以我们配置两条域名解析。
(1.1.1.1是为了演示写的假IP)

三、配置Nginx
1,创建Nginx配置文件:
执行下方命令。
bash
sudo nano /etc/nginx/sites-available/fandai.conf执行后会打开一个空的窗口。
2,编辑配置文件内容
感谢
灵绫零泠玲霊、爆炸小羊羔对配置文件的反馈,已更改配置文件内容。其中针对酒馆部分的AI思考时长、关闭缓冲部分参考了灵绫零泠玲霊老师的写法。
我们使用 Nano 编辑器来编辑配置文件内容。
nano编辑器简单用法
- 通过键盘上的 ↑ ↓ ← → 键来移动光标;
- 按快捷键
ctrl+o(字母o),可以保存文件内容,在窗口底部出现白色底的File Name to Write: xxxxxx时,按回车即可保存; - 按快捷键
ctrl+x,可以退出nano编辑器。
在这个空的窗口中,我们需要粘贴进去配置文件。
请注意你需要将更改server_name为自己的域名
将proxy_pass终端端口更改为自己需要代理的端口。
(在下方的代码块中会清晰显示的,就是需要你更改的)
ts
# 配置 jiuguan.laopobao.icu 的反向代理(专门针对酒馆等AI应用的优化配置)
server {
listen 80;
server_name jiuguan.laopobao.icu;
# 解除上传文件大小限制(0为不限制)
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:8000; # 反代到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;
# 支持 WebSocket 实时通信
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 解决AI思考时间过长导致的504超时报错
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
# 关闭缓冲,确保AI聊天的“流式输出”效果顺滑输出
proxy_buffering off;
proxy_cache off;
}
}
# 配置 panel.laopobao.icu 的反向代理 (针对普通面板或常规网站的通用配置)
server {
listen 80;
server_name panel.laopobao.icu;
# 解除上传文件大小限制(0为不限制)
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:10086; # 反代到10086端口
# 基础请求头透传
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;
# 支持 WebSocket 实时通信
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}更改完成后,粘贴进打开的nano编辑器中(即/etc/nginx/sites-available/fandai.conf文件)
按ctrl+o(字母欧),再按回车保存;
按ctrl+x,退出编辑器。
你可以通过下方指令来查看是否配置成功:
cat /etc/nginx/sites-available/fandai.conf输出配置文件中的内容,就成功啦。
3,启用配置文件
创建软链接将配置文件启用
bash
sudo ln -s /etc/nginx/sites-available/fandai.conf /etc/nginx/sites-enabled/不会输出任何内容。
检查Nginx配置文件是否有语法错误:
bash
sudo nginx -t输出内容
输出以下内容就是成功了:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(看“ok”和“successful”)
4,重新加载Nginx
确认没有语法错误后,重新加载Nginx
bash
sudo systemctl reload nginx这一步同样不会输出任何内容。
四、使用Certbot获取SSL证书
务必配置证书,这样可以使用https,比http更加安全。
1,添加Certbot的官方软件源:
bash
sudo apt install certbot python3-certbot-nginx -y2,使用Certbot获取SSL证书
必须替换
你必须替换下方代码中的jiuguan.laopobao.icu和panel.laopobao.icu为你自己实际想要获取证书的域名。
bash
sudo certbot --nginx -d jiuguan.laopobao.icu -d panel.laopobao.icu当提示下方内容时
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel):
输入你的邮箱地址,然后按回车,如图:

当提示输入 (Y)es/(N)o时,输入y并按回车(不区分大小写)
【一共需要输入两次 y】

稍等一会儿,等待证书申请完成。
当提示:Successfully deployed certificate for jiuguan.laopobao.icu to xxxxxx时,就是成功了。

3,验证ssl证书
现在,访问你设置好的反代,例如我的 panel.laopobao.icu

成功的标志
- 网站能够正常访问
- 地址栏有锁
- 网站地址以
https开头
五、后续添加新的Nginx反代的方法
1,编辑配置文件
打开配置文件
bash
sudo nano /etc/nginx/sites-available/fandai.conf💡 不要惊慌:文件内容变多了!
当你再次打开这个文件时,你会发现里面多出了很多原本没有的代码(比如 ssl_certificate 等等)。
不要害怕! 这是因为前面我们使用了 Certbot,它自动帮你把 HTTPS 相关的安全配置写进去了。
你只需要按键盘的 ↓ 键,一直移动到文件的最最最底部,将新的配置粘贴在所有代码的最后面即可。
千万不要修改或删除上面原本的代码哦!
2,粘贴配置文件
在配置文件的最后,粘贴新的参数:
(以 new.laopobao.icu 为例,端口为8888)
(在下方的代码块中会清晰显示的,就是需要你更改的)
ts
# 配置 new.laopobao.icu 的反向代理
server {
listen 80;
server_name new.laopobao.icu;
# 解除上传文件大小限制(0为不限制)
client_max_body_size 0;
location / {
proxy_pass http://127.0.0.1:8888; # 反代到8888端口
# 基础请求头透传
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;
# 支持 WebSocket 实时通信
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}3,检查Nginx语法
bash
sudo nginx -t输出内容
输出以下内容就是成功了:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(看“ok”和“successful”)
4,重新加载Nginx
确认没有语法错误后,重新加载Nginx
bash
sudo systemctl reload nginx这一步同样不会输出任何内容。
5,使用Certbot为新域名获取SSL证书:
必须替换
你必须替换下方代码中的new.laopobao.icu为你自己实际想要获取证书的域名。
bash
sudo certbot --nginx -d new.laopobao.icu证书获取完成后(successful),在网站中进行测试。
如果访问失败,请检查一下你的服务器防火墙(如 UFW 或云服务商的安全组)是否放行了 80 和 443 端口。
(注意:你不需要在防火墙中开放 8000、10086、8888 这种后端端口,因为 Nginx 会在服务器内部帮你转发,只开放 80 和 443 反而更安全!)
教程结束。
