news 2026/8/14 11:28:03

Nanbeige4.1-3B部署教程:Nginx SSL加密+BasicAuth认证保护私有AI服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nanbeige4.1-3B部署教程:Nginx SSL加密+BasicAuth认证保护私有AI服务

Nanbeige4.1-3B部署教程:Nginx SSL加密+BasicAuth认证保护私有AI服务

想在自己的服务器上部署一个私有AI助手,又担心直接暴露在公网不安全?今天,我们就来手把手教你如何为Nanbeige4.1-3B模型搭建一个既安全又专业的Web服务。通过Nginx实现SSL加密,再加上BasicAuth基础认证,让你能安心地在任何地方访问自己的AI服务,不用担心数据泄露或被滥用。

1. 为什么需要安全部署?

你可能已经成功部署了Nanbeige4.1-3B的WebUI,通过http://你的服务器IP:7860就能访问。但这存在几个明显问题:

  1. 通信不安全:所有你和AI的对话内容,都是以明文形式在网络中传输,容易被截获。
  2. 无访问控制:任何人只要知道你的IP和端口,都能使用你的AI服务,不仅消耗你的计算资源,还可能产生不当内容。
  3. 不够专业:一个带锁的https地址,比一个裸奔的http地址看起来可靠得多。

我们的目标很简单:把原本不设防的http://IP:7860,变成一个需要通过用户名密码登录、且全程加密的https://your-domain.com安全服务。

2. 部署前准备

在开始加密和加锁之前,我们需要确保基础服务已经就绪。请先完成以下两步。

2.1 基础模型与WebUI部署

首先,你需要已经在服务器上部署好Nanbeige4.1-3B模型及其Gradio WebUI。如果你还没做,可以参考项目提供的快速指南,核心步骤如下:

  1. 环境准备:确保你的服务器有Python环境(>=3.8)和足够的GPU显存(约6GB+)。
  2. 安装依赖:在项目目录(例如/root/nanbeige-webui)下,安装必要的Python包。
  3. 启动服务:运行启动脚本,确保WebUI在0.0.0.0:7860端口正常监听。

你可以通过访问http://你的服务器IP:7860来验证基础服务是否运行正常。

2.2 拥有一个域名(可选但推荐)

虽然直接使用IP地址配合SSL证书也是可行的,但拥有一个域名会带来诸多好处:

  • 证书申请更简单:Let‘s Encrypt等免费证书颁发机构对域名的支持最完善。
  • 访问更便捷:记住ai.yourname.com比记住一串IP地址要容易得多。
  • 更显专业:为你的私有AI服务提供一个专属域名。

如果你还没有域名,可以在各大域名注册商处购买一个。本教程后续将以ai.example.com为例,你需要将其替换为你自己的域名。

3. 配置Nginx反向代理与SSL加密

现在,我们进入核心环节,为服务套上“加密外壳”。Nginx将作为门户,接收外部的HTTPS请求,解密后转发给内部真正的WebUI服务。

3.1 安装Nginx与Certbot

在Ubuntu/Debian系统上,安装过程非常直接。

# 更新软件包列表 sudo apt update # 安装Nginx sudo apt install nginx -y # 安装Certbot(用于自动获取和管理Let's Encrypt免费SSL证书) sudo apt install certbot python3-certbot-nginx -y

安装完成后,可以先启动Nginx并设置开机自启。

sudo systemctl start nginx sudo systemctl enable nginx

此时,在浏览器访问你的服务器IP,应该能看到Nginx的默认欢迎页面,这说明Nginx安装成功。

3.2 获取免费的SSL证书

我们将使用Let‘s Encrypt提供的免费、自动化的SSL证书。确保你的域名(如ai.example.com)的DNS记录已经指向了你的服务器IP。

# 执行Certbot命令,为你的域名申请证书 # 将 `ai.example.com` 替换为你的实际域名 sudo certbot --nginx -d ai.example.com

执行命令后,Certbot会引导你完成以下步骤:

  1. 输入你的邮箱(用于接收证书到期提醒)。
  2. 同意服务条款。
  3. 询问是否订阅电子前沿基金会的邮件(可选否)。
  4. Certbot会自动与Let‘s Encrypt通信,验证你对域名的所有权(通常通过创建特定的验证文件)。
  5. 验证成功后,它会自动下载并安装SSL证书。

最关键的一步来了:Certbot会询问你是否将所有的HTTP流量重定向到HTTPS请务必选择“2: Redirect”。这样,即使用户不小心访问了http://ai.example.com,也会被强制跳转到安全的https://ai.example.com

3.3 配置Nginx反向代理

证书安装好后,Certbot会自动修改Nginx的站点配置文件。但我们还需要手动调整,让它将请求转发给我们内部的Nanbeige WebUI服务(运行在7860端口)。

找到你的站点配置文件,通常位于/etc/nginx/sites-available/目录下,文件名就是你的域名(如ai.example.com)。用文本编辑器打开它:

sudo nano /etc/nginx/sites-available/ai.example.com

你需要找到server块中location /的部分,将其修改为反向代理的配置。修改后的关键部分看起来应该是这样:

server { listen 443 ssl; # 监听443端口(HTTPS) server_name ai.example.com; # 你的域名 # SSL证书路径(Certbot自动配置的) ssl_certificate /etc/letsencrypt/live/ai.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ai.example.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; location / { # 核心配置:将请求代理到本地的Gradio WebUI服务 proxy_pass http://127.0.0.1:7860; # 以下配置用于正确传递WebSocket等连接信息,确保Gradio功能完整 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_read_timeout 86400; # 设置较长的超时时间,适应AI生成耗时 } } # Certbot自动添加的HTTP重定向配置 server { listen 80; server_name ai.example.com; return 301 https://$server_name$request_uri; }

修改完成后,保存并退出编辑器。然后测试Nginx配置是否正确,最后重新加载配置使其生效。

# 测试配置文件语法 sudo nginx -t # 如果显示 `syntax is ok` 和 `test is successful`,则继续 # 重新加载Nginx配置 sudo systemctl reload nginx

至此,你的SSL加密通道已经搭建完成!现在你可以通过https://ai.example.com安全地访问你的AI服务了。浏览器地址栏应该会显示一把小锁,表示连接是加密的。

4. 添加BasicAuth基础认证

加密解决了通信安全问题,但我们还需要一把“门锁”来控制谁可以进来。BasicAuth就是一种简单的用户名密码认证机制。

4.1 创建密码文件

我们使用htpasswd工具来创建和管理密码文件。首先安装apache2-utils包(它包含了这个工具)。

sudo apt install apache2-utils -y

然后,创建一个密码文件。我们将文件放在/etc/nginx/.htpasswd这个隐蔽的位置,并设置一个用户,比如叫admin

# 创建密码文件并添加第一个用户 `admin` # 系统会提示你输入并确认密码 sudo htpasswd -c /etc/nginx/.htpasswd admin

重要提示-c参数表示创建新文件。如果后续需要添加第二个用户,绝对不能再用-c参数,否则会覆盖原文件。添加第二个用户应该使用:

sudo htpasswd /etc/nginx/.htpasswd another_user

4.2 在Nginx配置中启用认证

现在,我们需要告诉Nginx,在转发请求到WebUI之前,先检查这个密码文件。

再次打开你的Nginx站点配置文件:

sudo nano /etc/nginx/sites-available/ai.example.com

location /块内部,添加两行认证配置:

location / { # 启用Basic认证 auth_basic "Private AI Service - Authentication Required"; auth_basic_user_file /etc/nginx/.htpasswd; # 原有的反向代理配置保持不变 proxy_pass http://127.0.0.1:7860; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_read_timeout 86400; }

保存文件,再次测试并重载Nginx配置。

sudo nginx -t sudo systemctl reload nginx

4.3 验证认证生效

现在,当你再次访问https://ai.example.com时,浏览器会首先弹出一个登录框,要求你输入用户名(admin)和密码。只有输入正确的凭证后,才能看到Nanbeige4.1-3B的WebUI界面。

5. 进阶配置与优化

基础的安全防护已经完成,但为了让服务更稳定、更易用,我们还可以做一些优化。

5.1 配置SSL证书自动续期

Let‘s Encrypt的证书有效期为90天。Certbot安装时通常会自动创建一个定时任务(cron job或systemd timer)来续期。但手动确认一下是个好习惯。

# 测试证书自动续期流程(模拟运行,不会真的续期) sudo certbot renew --dry-run

如果显示所有模拟续期测试成功,就说明自动续期配置正常。你也可以手动运行续期命令:

# 手动续期所有快到期的证书 sudo certbot renew

5.2 调整Nginx性能参数

AI模型推理可能比较耗时,为了避免连接超时,可以适当调整Nginx的一些超时参数。你可以在Nginx的http块或server块中添加这些配置(通常在主配置文件/etc/nginx/nginx.conf或站点配置文件中)。

# 在 server 块内或 location 块外添加 proxy_connect_timeout 75s; proxy_send_timeout 3600s; # 发送超时时间调长 proxy_read_timeout 3600s; # 读取超时时间调长,适应长文本生成 client_body_timeout 3600s; client_header_timeout 3600s; send_timeout 3600s;

5.3 设置防火墙规则(UFW)

如果你的服务器开启了防火墙(如UFW),需要确保放行HTTP(80)和HTTPS(443)端口,同时关闭不必要的7860端口的公开访问,因为现在所有流量都应该通过Nginx的443端口进入。

# 允许Nginx的HTTP和HTTPS流量 sudo ufw allow 'Nginx Full' # 删除之前可能为测试开放的7860端口规则(如果存在) sudo ufw delete allow 7860 # 重新加载防火墙规则 sudo ufw reload # 查看当前规则,确认只有80和443开放 sudo ufw status

6. 总结与回顾

至此,我们已经完成了一个从“裸奔”到“全副武装”的私有AI服务部署。让我们回顾一下关键的步骤和达成的效果:

  1. 基础部署:确保Nanbeige4.1-3B WebUI在本地7860端口正常运行。
  2. 加密传输(SSL):通过Nginx和Let‘s Encrypt Certbot,为我们的域名配置了免费的HTTPS证书,实现了浏览器到服务器之间的通信加密。
  3. 访问控制(BasicAuth):在Nginx层添加了用户名密码认证,只有授权用户才能访问AI服务。
  4. 安全加固:通过防火墙规则,隐藏了原始的7860服务端口,所有访问必须经过Nginx网关。

现在,你的私有AI服务地址https://ai.example.com已经具备了企业级应用的基础安全特性。你可以放心地将这个链接分享给信任的伙伴,让他们也能在加密通道下,通过输入密码来使用你部署的强大AI模型。

这种“Nginx SSL + BasicAuth”的模式,是一种经典、有效且维护简单的安全部署方案,不仅适用于Nanbeige4.1-3B,也适用于其他任何基于Web的AI模型服务或内部工具。希望这篇教程能帮助你安全、放心地享受私有AI带来的便利。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 11:27:35

ClawdBot多平台实践:Telegram群聊自动识别+语音图片翻译全链路

ClawdBot多平台实践:Telegram群聊自动识别语音图片翻译全链路 1. 引言:你的全能翻译官,5分钟上线 想象一下这个场景:你加入了一个国际化的Telegram群组,群友来自世界各地,消息里混杂着英文、日文、韩文&a…

作者头像 李华
网站建设 2026/7/14 15:55:51

零基和一基

零基:数组index分频值一基:字节数

作者头像 李华
网站建设 2026/7/14 15:55:49

基于YOLOv8的车牌识别与定位系统

本项目基于 YOLOv8 实现车牌检测与定位,提供完整的训练流程与可视化桌面应用,支持图片、视频、摄像头多种输入方式的实时检测。 一、项目技术栈 类别技术深度学习框架PyTorch、Ultralytics YOLOv8计算机视觉OpenCV桌面 UIPyQt6数据处理NumPy、Pandas可视…

作者头像 李华
网站建设 2026/7/14 15:56:01

提醒饮水系统(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T0662205M设计简介:本设计是基于单片机的提醒饮水系统,主要实现以下功能:1、可设置提醒次数与提醒时间间隔 2、可通过温…

作者头像 李华
网站建设 2026/7/14 15:56:03

渗透测试之MSF讲解

一.MSF的简介 MSF全称是The Metasploit Framework,是一个开源的漏洞检测工具,可用于信息收集、漏洞探测、漏洞利用等渗透测试的全流程,本身附带2000多个已知软件漏洞的专业级漏洞攻击工具,被安全社区称为可以黑掉全宇宙&#xff0…

作者头像 李华
网站建设 2026/7/14 15:56:02

编写一个dockerfile,实现一个打包好的jenkins直接用

文章目录 前言 一、总体文件需求 二、编写Dockerfile 三、docker build& docker push 四、使用docker pull&docker run 五、相关连接 前言 我有一篇文章,关于如何在centos中安装jenkins并且配置的方法。但是因为每次安装都要安装很多东西(jdk17,jenkins,git,maven,n…

作者头像 李华