长沙建设网站哪家好什么是响应式营销型网站建设
长沙建设网站哪家好,什么是响应式营销型网站建设,网站建设一般怎么付款,邦派巴洛特网站是谁做的呀Qwen2.5-1.5B部署教程#xff1a;HTTPS反向代理#xff08;nginx#xff09;域名访问安全配置
1. 项目概述与部署价值
Qwen2.5-1.5B是阿里通义千问推出的轻量级大语言模型#xff0c;仅1.5B参数就能提供相当不错的对话能力。这个模型特别适合部署在个人服务器或低配置设备…Qwen2.5-1.5B部署教程HTTPS反向代理nginx域名访问安全配置1. 项目概述与部署价值Qwen2.5-1.5B是阿里通义千问推出的轻量级大语言模型仅1.5B参数就能提供相当不错的对话能力。这个模型特别适合部署在个人服务器或低配置设备上实现完全本地化的智能对话服务。但直接通过IP地址访问Streamlit服务存在两个问题一是安全性不足数据传输是明文的二是不便于记忆和管理。通过nginx配置HTTPS反向代理我们可以用域名安全访问服务同时提升使用体验。本教程将带你一步步完成从基础服务部署到安全配置的全过程让你能用https://your-domain.com这样的方式安全访问你的本地AI助手。2. 环境准备与基础部署2.1 系统要求与软件安装首先确保你的服务器满足以下要求Ubuntu 18.04 或 CentOS 7 系统至少8GB内存模型加载需要约3GBPython 3.8 环境已下载Qwen2.5-1.5B模型文件到本地安装必要的软件包# Ubuntu/Debian sudo apt update sudo apt install nginx python3-pip python3-venv # CentOS/RHEL sudo yum install epel-release sudo yum install nginx python3-pip2.2 基础Streamlit服务部署创建项目目录并设置虚拟环境mkdir qwen-chat cd qwen-chat python3 -m venv venv source venv/bin/activate安装必要的Python包pip install streamlit torch transformers创建基本的Streamlit应用文件app.pyimport streamlit as st from transformers import AutoModelForCausalLM, AutoTokenizer import torch # 模型路径配置 MODEL_PATH /root/qwen1.5b st.cache_resource def load_model(): 加载模型和分词器 print(f 正在加载模型: {MODEL_PATH}) tokenizer AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( MODEL_PATH, device_mapauto, torch_dtypeauto, trust_remote_codeTrue ) return model, tokenizer # 初始化session状态 if messages not in st.session_state: st.session_state.messages [] # 侧边栏配置 with st.sidebar: st.title(Qwen2.5-1.5B 聊天助手) if st.button( 清空对话): st.session_state.messages [] torch.cuda.empty_cache() if torch.cuda.is_available() else None st.rerun() # 主界面 st.title(Qwen2.5-1.5B 智能对话) # 加载模型 model, tokenizer load_model() # 显示历史消息 for message in st.session_state.messages: with st.chat_message(message[role]): st.markdown(message[content]) # 用户输入 if prompt : st.chat_input(你好我是Qwen2.5-1.5B有什么可以帮你的): # 添加用户消息 st.session_state.messages.append({role: user, content: prompt}) with st.chat_message(user): st.markdown(prompt) # 生成回复 with st.chat_message(assistant): with st.spinner(思考中...): # 准备对话模板 messages [{role: m[role], content: m[content]} for m in st.session_state.messages] text tokenizer.apply_chat_template( messages, tokenizeFalse, add_generation_promptTrue ) # 生成参数配置 inputs tokenizer(text, return_tensorspt).to(model.device) with torch.no_grad(): outputs model.generate( **inputs, max_new_tokens1024, temperature0.7, top_p0.9, do_sampleTrue ) # 解码并显示回复 response tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokensTrue) st.markdown(response) # 添加助手回复 st.session_state.messages.append({role: assistant, content: response})启动测试服务streamlit run app.py --server.port 8501 --server.address 0.0.0.0现在你应该能通过http://你的服务器IP:8501访问服务了。3. nginx反向代理配置3.1 安装和配置nginx首先确保nginx已安装并运行sudo systemctl start nginx sudo systemctl enable nginx创建nginx配置文件sudo nano /etc/nginx/sites-available/qwen-chat添加以下配置内容server { listen 80; server_name your-domain.com; # 替换为你的域名 # 反向代理配置 location / { proxy_pass http://localhost:8501; 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_cache_bypass $http_upgrade; # 超时设置 proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; } # 安全头设置 add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection 1; modeblock; }启用配置并重启nginxsudo ln -s /etc/nginx/sites-available/qwen-chat /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置 sudo systemctl restart nginx3.2 域名解析设置在你的域名管理后台添加一条A记录类型A主机记录或者你想要的子域名如ai记录值你的服务器IP地址等待DNS解析生效通常需要几分钟到几小时然后你应该能通过域名访问HTTP服务了。4. SSL证书配置与HTTPS安全访问4.1 安装Certbot获取SSL证书安装Certbot和nginx插件# Ubuntu sudo apt install certbot python3-certbot-nginx # CentOS sudo yum install certbot python3-certbot-nginx获取SSL证书sudo certbot --nginx -d your-domain.com # 替换为你的域名按照提示操作Certbot会自动配置nginx使用HTTPS。4.2 强化HTTPS安全配置更新nginx配置添加安全强化设置server { listen 443 ssl http2; 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; # SSL安全配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # HSTS头强制HTTPS add_header Strict-Transport-Security max-age63072000 always; # 其他安全头 add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection 1; modeblock; add_header Referrer-Policy no-referrer-when-downgrade; # 反向代理配置 location / { proxy_pass http://localhost:8501; 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_cache_bypass $http_upgrade; # 超时设置适应大模型生成时间 proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; } } # HTTP重定向到HTTPS server { listen 80; server_name your-domain.com; return 301 https://$server_name$request_uri; }重新加载nginx配置sudo nginx -t sudo systemctl reload nginx5. 系统服务与自动化管理5.1 创建Systemd服务为了让Streamlit服务在后台持续运行创建systemd服务sudo nano /etc/systemd/system/qwen-chat.service添加以下内容[Unit] DescriptionQwen2.5-1.5B Chat Service Afternetwork.target [Service] Typesimple Useryour-username # 替换为你的用户名 WorkingDirectory/path/to/qwen-chat # 替换为项目路径 EnvironmentPATH/path/to/qwen-chat/venv/bin:/usr/local/bin:/usr/bin:/bin ExecStart/path/to/qwen-chat/venv/bin/streamlit run app.py --server.port 8501 --server.address 0.0.0.0 Restartalways RestartSec10 [Install] WantedBymulti-user.target启用并启动服务sudo systemctl daemon-reload sudo systemctl start qwen-chat sudo systemctl enable qwen-chat5.2 SSL证书自动续期设置定时任务自动续期SSL证书sudo crontab -e添加以下行0 12 * * * /usr/bin/certbot renew --quiet6. 安全加固与性能优化6.1 防火墙配置配置防火墙只开放必要端口# 如果使用ufwUbuntu sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable # 如果使用firewalldCentOS sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --permanent --add-servicehttps sudo firewall-cmd --reload6.2 访问限制配置可以配置nginx限制访问频率# 在http块中添加 limit_req_zone $binary_remote_addr zoneone:10m rate1r/s; # 在server块中添加 limit_req zoneone burst5 nodelay;6.3 性能优化建议对于Streamlit服务的优化# 在app.py中添加这些配置 st.set_page_config( page_titleQwen2.5-1.5B Chat, page_icon, layoutwide, initial_sidebar_stateexpanded )7. 故障排除与常见问题7.1 常见问题解决问题1nginx报502错误# 检查Streamlit服务是否运行 sudo systemctl status qwen-chat # 检查端口是否监听 netstat -tlnp | grep 8501问题2证书续期失败# 手动测试续期 sudo certbot renew --dry-run问题3模型加载慢确保模型文件在本地磁盘检查磁盘IO性能考虑使用更快的存储设备7.2 监控与日志查看查看服务日志# Streamlit服务日志 journalctl -u qwen-chat -f # nginx访问日志 tail -f /var/log/nginx/access.log # nginx错误日志 tail -f /var/log/nginx/error.log8. 总结通过本教程你已经成功部署了一个完整的Qwen2.5-1.5B智能对话服务并配置了安全的HTTPS访问。现在你可以通过https://your-domain.com安全地访问你的私有AI助手。这种部署方式的好处包括数据安全所有对话数据在本地处理HTTPS加密传输访问便捷使用域名访问无需记忆IP地址和端口专业体验HTTPS连接更显专业浏览器不会显示安全警告易于维护systemd服务管理自动证书续期你的本地AI助手现在已经准备好为你提供智能对话服务了无论是技术问题解答、创意文案生成还是日常知识查询它都能在保护你隐私的前提下提供帮助。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。