DAMO-YOLO手机检测WebUI安全加固Nginx反向代理基础认证配置教程1. 项目背景与安全需求随着AI技术的普及应用基于DAMO-YOLO和TinyNAS技术的手机检测系统在各个场景中得到广泛应用。这个系统以其小、快、省的特点特别适合手机端低算力、低功耗场景。然而直接将Web服务暴露在公网上存在安全风险需要采取适当的安全加固措施。为什么需要安全加固WebUI服务默认运行在7860端口直接暴露存在被未授权访问的风险系统可能处理敏感图片数据需要保护用户隐私防止恶意请求对服务造成负担或攻击本教程将教你如何通过Nginx反向代理和基础认证来增强系统安全性让你的手机检测服务既安全又稳定。2. 环境准备与安装Nginx2.1 检查现有环境首先确认你的手机检测系统已经正常运行# 检查服务状态 supervisorctl status phone-detection # 测试Web服务是否正常 curl -I http://localhost:7860如果服务正常运行你应该能看到HTTP 200响应。2.2 安装Nginx在Ubuntu/CentOS系统上安装Nginx# Ubuntu/Debian sudo apt update sudo apt install nginx # CentOS/RHEL sudo yum install epel-release sudo yum install nginx # 启动Nginx并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx2.3 验证Nginx安装安装完成后检查Nginx状态sudo systemctl status nginx在浏览器中访问你的服务器IP应该能看到Nginx的欢迎页面。3. 配置Nginx反向代理3.1 创建Nginx配置文件为手机检测服务创建专用的Nginx配置sudo nano /etc/nginx/sites-available/phone-detection将以下配置内容粘贴到文件中server { listen 80; server_name your-domain.com; # 替换为你的域名或IP # 安全头部设置 add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection 1; modeblock; # 反向代理配置 location / { # 基础认证启用 auth_basic Restricted Access; auth_basic_user_file /etc/nginx/.htpasswd; # 代理设置 proxy_pass http://localhost:7860; 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_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; # WebSocket支持如果Gradio需要 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } # 禁止访问隐藏文件 location ~ /\. { deny all; access_log off; log_not_found off; } # 访问日志设置 access_log /var/log/nginx/phone-detection.access.log; error_log /var/log/nginx/phone-detection.error.log; }3.2 启用配置文件创建符号链接启用配置sudo ln -s /etc/nginx/sites-available/phone-detection /etc/nginx/sites-enabled/3.3 测试Nginx配置检查配置是否正确sudo nginx -t如果显示configuration file /etc/nginx/nginx.conf test is successful说明配置正确。4. 设置基础认证4.1 安装htpasswd工具# Ubuntu/Debian sudo apt install apache2-utils # CentOS/RHEL sudo yum install httpd-tools4.2 创建认证用户创建第一个用户sudo htpasswd -c /etc/nginx/.htpasswd your_username系统会提示你输入密码。如果要添加更多用户去掉-c参数sudo htpasswd /etc/nginx/.htpasswd another_user4.3 设置文件权限确保认证文件安全sudo chown root:www-data /etc/nginx/.htpasswd sudo chmod 640 /etc/nginx/.htpasswd5. 应用配置与测试5.1 重启Nginx服务应用所有配置更改sudo systemctl restart nginx5.2 测试安全配置现在通过浏览器访问你的服务器IP或域名# 测试HTTP访问 curl -I http://your-server-ip你应该收到401未授权响应这表明基础认证已生效。5.3 完整功能测试通过浏览器访问输入http://你的服务器IP输入用户名密码使用刚才设置的用户名密码登录测试手机检测功能确保所有功能正常工作检查日志确认没有错误信息# 查看Nginx访问日志 sudo tail -f /var/log/nginx/phone-detection.access.log # 查看错误日志 sudo tail -f /var/log/nginx/phone-detection.error.log6. 高级安全配置6.1 SSL/TLS加密可选但推荐如果你有域名建议配置HTTPS加密# 安装CertbotLets Encrypt sudo apt install certbot python3-certbot-nginx # 获取SSL证书 sudo certbot --nginx -d your-domain.com6.2 防火墙配置加强防火墙规则# 只开放80和443端口 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.3 限制访问频率防止暴力破解# 在Nginx配置中添加限流 http { limit_req_zone $binary_remote_addr zoneauth:10m rate5r/m; } server { location / { # 添加限流 limit_req zoneauth burst10 nodelay; # 原有配置... } }7. 故障排除与维护7.1 常见问题解决问题1认证失败# 检查认证文件权限 sudo ls -la /etc/nginx/.htpasswd # 重新设置密码 sudo htpasswd /etc/nginx/.htpasswd your_username问题2502 Bad Gateway# 检查后端服务是否运行 supervisorctl status phone-detection # 检查端口监听 netstat -tlnp | grep 7860问题3性能问题# 调整Nginx工作进程数 sudo nano /etc/nginx/nginx.conf # 修改 worker_processes auto;7.2 日常维护命令# 检查Nginx状态 sudo systemctl status nginx # 重新加载配置不中断服务 sudo nginx -s reload # 查看实时访问日志 sudo tail -f /var/log/nginx/phone-detection.access.log # 备份配置 sudo cp /etc/nginx/sites-available/phone-detection /etc/nginx/sites-available/phone-detection.backup7.3 监控与告警设置简单的监控脚本#!/bin/bash # monitor-phone-detection.sh # 检查服务状态 if ! curl -u username:password -f http://localhost/ /dev/null 21; then echo Phone detection service is down! $(date) /var/log/service-monitor.log # 可以添加重启命令或发送通知 supervisorctl restart phone-detection fi添加到cron定时任务# 每5分钟检查一次 echo */5 * * * * root /path/to/monitor-phone-detection.sh | sudo tee -a /etc/crontab8. 总结通过本教程你已经成功为DAMO-YOLO手机检测WebUI添加了Nginx反向代理和基础认证两层安全防护。现在你的系统具有以下安全特性已实现的安全措施 基础身份认证防止未授权访问 Nginx反向代理隐藏真实服务端口️ 安全头部增强防止常见Web攻击 访问日志记录便于审计和监控可选增强措施SSL/TLS加密传输强烈推荐访问频率限制防止暴力破解IP访问限制如果需要定期安全更新和维护维护建议定期更新Nginx和系统安全补丁定期更换认证密码监控日志文件及时发现异常访问定期备份配置文件现在你的手机检测系统不仅功能强大而且安全性也得到了显著提升可以更安心地在生产环境中使用。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
DAMO-YOLO手机检测WebUI安全加固:Nginx反向代理+基础认证配置教程
DAMO-YOLO手机检测WebUI安全加固Nginx反向代理基础认证配置教程1. 项目背景与安全需求随着AI技术的普及应用基于DAMO-YOLO和TinyNAS技术的手机检测系统在各个场景中得到广泛应用。这个系统以其小、快、省的特点特别适合手机端低算力、低功耗场景。然而直接将Web服务暴露在公网上存在安全风险需要采取适当的安全加固措施。为什么需要安全加固WebUI服务默认运行在7860端口直接暴露存在被未授权访问的风险系统可能处理敏感图片数据需要保护用户隐私防止恶意请求对服务造成负担或攻击本教程将教你如何通过Nginx反向代理和基础认证来增强系统安全性让你的手机检测服务既安全又稳定。2. 环境准备与安装Nginx2.1 检查现有环境首先确认你的手机检测系统已经正常运行# 检查服务状态 supervisorctl status phone-detection # 测试Web服务是否正常 curl -I http://localhost:7860如果服务正常运行你应该能看到HTTP 200响应。2.2 安装Nginx在Ubuntu/CentOS系统上安装Nginx# Ubuntu/Debian sudo apt update sudo apt install nginx # CentOS/RHEL sudo yum install epel-release sudo yum install nginx # 启动Nginx并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx2.3 验证Nginx安装安装完成后检查Nginx状态sudo systemctl status nginx在浏览器中访问你的服务器IP应该能看到Nginx的欢迎页面。3. 配置Nginx反向代理3.1 创建Nginx配置文件为手机检测服务创建专用的Nginx配置sudo nano /etc/nginx/sites-available/phone-detection将以下配置内容粘贴到文件中server { listen 80; server_name your-domain.com; # 替换为你的域名或IP # 安全头部设置 add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection 1; modeblock; # 反向代理配置 location / { # 基础认证启用 auth_basic Restricted Access; auth_basic_user_file /etc/nginx/.htpasswd; # 代理设置 proxy_pass http://localhost:7860; 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_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; # WebSocket支持如果Gradio需要 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } # 禁止访问隐藏文件 location ~ /\. { deny all; access_log off; log_not_found off; } # 访问日志设置 access_log /var/log/nginx/phone-detection.access.log; error_log /var/log/nginx/phone-detection.error.log; }3.2 启用配置文件创建符号链接启用配置sudo ln -s /etc/nginx/sites-available/phone-detection /etc/nginx/sites-enabled/3.3 测试Nginx配置检查配置是否正确sudo nginx -t如果显示configuration file /etc/nginx/nginx.conf test is successful说明配置正确。4. 设置基础认证4.1 安装htpasswd工具# Ubuntu/Debian sudo apt install apache2-utils # CentOS/RHEL sudo yum install httpd-tools4.2 创建认证用户创建第一个用户sudo htpasswd -c /etc/nginx/.htpasswd your_username系统会提示你输入密码。如果要添加更多用户去掉-c参数sudo htpasswd /etc/nginx/.htpasswd another_user4.3 设置文件权限确保认证文件安全sudo chown root:www-data /etc/nginx/.htpasswd sudo chmod 640 /etc/nginx/.htpasswd5. 应用配置与测试5.1 重启Nginx服务应用所有配置更改sudo systemctl restart nginx5.2 测试安全配置现在通过浏览器访问你的服务器IP或域名# 测试HTTP访问 curl -I http://your-server-ip你应该收到401未授权响应这表明基础认证已生效。5.3 完整功能测试通过浏览器访问输入http://你的服务器IP输入用户名密码使用刚才设置的用户名密码登录测试手机检测功能确保所有功能正常工作检查日志确认没有错误信息# 查看Nginx访问日志 sudo tail -f /var/log/nginx/phone-detection.access.log # 查看错误日志 sudo tail -f /var/log/nginx/phone-detection.error.log6. 高级安全配置6.1 SSL/TLS加密可选但推荐如果你有域名建议配置HTTPS加密# 安装CertbotLets Encrypt sudo apt install certbot python3-certbot-nginx # 获取SSL证书 sudo certbot --nginx -d your-domain.com6.2 防火墙配置加强防火墙规则# 只开放80和443端口 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.3 限制访问频率防止暴力破解# 在Nginx配置中添加限流 http { limit_req_zone $binary_remote_addr zoneauth:10m rate5r/m; } server { location / { # 添加限流 limit_req zoneauth burst10 nodelay; # 原有配置... } }7. 故障排除与维护7.1 常见问题解决问题1认证失败# 检查认证文件权限 sudo ls -la /etc/nginx/.htpasswd # 重新设置密码 sudo htpasswd /etc/nginx/.htpasswd your_username问题2502 Bad Gateway# 检查后端服务是否运行 supervisorctl status phone-detection # 检查端口监听 netstat -tlnp | grep 7860问题3性能问题# 调整Nginx工作进程数 sudo nano /etc/nginx/nginx.conf # 修改 worker_processes auto;7.2 日常维护命令# 检查Nginx状态 sudo systemctl status nginx # 重新加载配置不中断服务 sudo nginx -s reload # 查看实时访问日志 sudo tail -f /var/log/nginx/phone-detection.access.log # 备份配置 sudo cp /etc/nginx/sites-available/phone-detection /etc/nginx/sites-available/phone-detection.backup7.3 监控与告警设置简单的监控脚本#!/bin/bash # monitor-phone-detection.sh # 检查服务状态 if ! curl -u username:password -f http://localhost/ /dev/null 21; then echo Phone detection service is down! $(date) /var/log/service-monitor.log # 可以添加重启命令或发送通知 supervisorctl restart phone-detection fi添加到cron定时任务# 每5分钟检查一次 echo */5 * * * * root /path/to/monitor-phone-detection.sh | sudo tee -a /etc/crontab8. 总结通过本教程你已经成功为DAMO-YOLO手机检测WebUI添加了Nginx反向代理和基础认证两层安全防护。现在你的系统具有以下安全特性已实现的安全措施 基础身份认证防止未授权访问 Nginx反向代理隐藏真实服务端口️ 安全头部增强防止常见Web攻击 访问日志记录便于审计和监控可选增强措施SSL/TLS加密传输强烈推荐访问频率限制防止暴力破解IP访问限制如果需要定期安全更新和维护维护建议定期更新Nginx和系统安全补丁定期更换认证密码监控日志文件及时发现异常访问定期备份配置文件现在你的手机检测系统不仅功能强大而且安全性也得到了显著提升可以更安心地在生产环境中使用。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。