在企业环境中部署大语言模型时,直接暴露服务端口存在严重安全隐患。本文将详细介绍如何为Qwen3.5-9B模型配置Nginx反向代理和HTTPS加密访问,实现:
- 隐藏真实服务端口(7860)
- 启用HTTPS加密传输
- 配置域名访问
- 实现负载均衡(可选)
- 添加基础认证(可选)
2.1 系统要求
- 已部署Qwen3.5-9B服务(默认监听7860端口)
- 服务器已安装Nginx(版本1.18+)
- 拥有域名并完成DNS解析
- 开放80/443端口(或自定义端口)
2.2 软件版本检查
# 检查Nginx版本 nginx -v
检查OpenSSL版本(用于HTTPS)
openssl version
检查Supervisor状态(确保Qwen服务正常运行)
supervisorctl status qwen3.5-9b
3.1 创建Nginx配置文件
在/etc/nginx/conf.d/目录下创建新配置文件:
sudo vim /etc/nginx/conf.d/qwen-proxy.conf
3.2 基础代理配置
server }
3.3 配置说明
proxy_pass 将请求转发到本地的7860端口
proxy_set_header 传递客户端真实IP等信息
Upgrade头 支持Gradio的WebSocket通信
3.4 测试并重载配置
# 测试配置语法 sudo nginx -t
重载Nginx
sudo systemctl reload nginx
4.1 获取SSL证书
推荐使用Let’s Encrypt免费证书:
# 安装certbot工具 sudo apt install certbot python3-certbot-nginx
获取证书(自动修改Nginx配置)
sudo certbot –nginx -d your-domain.com
4.2 自动生成的HTTPS配置
Certbot会自动修改Nginx配置,生成类似如下内容:
server }
HTTP自动跳转HTTPS
server {
listen 80; server_name your-domain.com; return 301 https://$host$request_uri;
}
4.3 证书自动续期
设置crontab自动续期:
# 编辑crontab sudo crontab -e
添加以下内容(每天检查续期)
0 12 * * * /usr/bin/certbot renew –quiet
5.1 添加基础认证
# 创建密码文件(首次运行) sudo sh -c “echo -n ‘admin:’ >> /etc/nginx/.htpasswd” sudo sh -c “openssl passwd -apr1 >> /etc/nginx/.htpasswd”
在Nginx配置中添加:
location / {
auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; # 原有proxy配置
}
5.2 IP访问限制
location / {
allow 192.168.1.0/24; # 允许内网IP allow 203.0.113.45; # 允许特定公网IP deny all; # 拒绝其他所有 # 原有proxy配置
}
5.3 速率限制
# 在http块中添加 limit_req_zone $binary_remote_addr zone=qwen_limit:10m rate=5r/s;
在server块中添加
location / {
limit_req zone=qwen_limit burst=10 nodelay; # 原有proxy配置
}
6.1 启用Gzip压缩
gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; gzip_min_length 1024; gzip_proxied any;
6.2 调整缓冲区大小
proxy_buffers 16 32k; proxy_buffer_size 64k; proxy_busy_buffers_size 128k;
6.3 连接超时设置
proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90;
如果有多个Qwen3.5-9B实例,可配置负载均衡:
upstream qwen_servers {
server 192.168.1.10:7860; server 192.168.1.11:7860; server 192.168.1.12:7860; # 负载均衡策略 least_conn; # 最少连接数
}
server {
location / { proxy_pass http://qwen_servers; # 其他proxy配置 }
}
# /etc/nginx/conf.d/qwen-proxy.conf upstream qwen_servers { server localhost:7860; } server # 静态文件缓存 location /static/ { alias /path/to/static/files; expires 30d; access_log off; } } server { listen 80; server_name your-domain.com; return 301 https://$host$request_uri; }
9.1 502 Bad Gateway错误
可能原因:
- Qwen服务未运行
- 端口配置错误
- 权限问题
排查步骤:
# 检查服务状态 supervisorctl status qwen3.5-9b
检查端口监听
ss -tlnp | grep 7860
检查Nginx错误日志
tail -f /var/log/nginx/error.log
9.2 HTTPS无法访问
检查项:
- 443端口是否开放
- 证书路径是否正确
- 证书是否过期
# 检查端口开放 sudo ufw status
检查证书有效期
sudo certbot certificates
测试HTTPS连接
openssl s_client -connect your-domain.com:443
9.3 WebSocket连接失败
解决方案: 确保Nginx配置中包含WebSocket支持头:
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”;
通过本文配置,您已经实现了:
- 通过Nginx隐藏真实服务端口
- 启用HTTPS加密通信
- 配置域名访问
- 添加基础安全防护
- 优化服务性能
企业部署建议:
- 定期检查证书有效期
- 监控Nginx和Qwen服务状态
- 根据访问量调整连接参数
- 定期备份Nginx配置
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/266014.html