Appearance
嵌入式技术方案站点配置指南
一、服务器环境配置
1.1 服务器选型
硬件配置
- CPU:建议选择4核及以上(如Intel Xeon E-2234或AMD Ryzen 5 5600G),满足多任务处理需求
- 内存:16GB起步(推荐32GB DDR4),支持容器化部署(如Docker)
- 存储:SSD 512GB + HDD 2TB(混合存储,保障数据安全与读写性能)
- 网络:双千兆网卡(支持负载均衡与冗余备份)
云服务器推荐
- 阿里云ECS:可选「计算型c7」或「通用型g7」实例
- 腾讯云CVM:推荐「标准型S6」实例,支持GPU加速(如需AI模型部署)
1.2 操作系统选择
系统类型 | 适用场景 | 配置建议 |
---|---|---|
Ubuntu 22.04 LTS | 通用型Web服务、容器化部署 | 安装OpenSSH、Docker CE、Nginx等基础组件 |
CentOS 8 | 传统企业级应用 | 启用SELinux增强安全性,安装httpd服务 |
Debian 11 | 轻量级服务、低功耗设备 | 最小化安装,保留基础系统工具 |
1.3 运行环境搭建
1.3.1 LAMP/LEMP栈部署
LNMP(Nginx+PHP+MySQL)
bash# 安装Nginx sudo apt-get install nginx # 安装PHP 8.1(含FPM、MySQL扩展) sudo apt-get install php8.1-fpm php8.1-mysql php8.1-gd # 安装MySQL 8.0 sudo apt-get install mysql-server sudo mysql_secure_installation # 初始化安全配置
环境验证
创建测试文件/var/www/html/info.php
:php<?php phpinfo(); ?>
访问
http://服务器IP/info.php
验证PHP运行环境。
二、域名与DNS配置
2.1 域名注册与解析
- 域名服务商:阿里云、腾讯云、Namecheap
- DNS解析记录
记录类型 主机名 解析值 备注 A @ 服务器公网IP 根域名指向服务器 A www 服务器公网IP 带www前缀域名指向 CNAME blog blog.embedded-tech.com 子域名(如博客)指向二级域名 TXT @ v=spf1 mx ~all 反垃圾邮件SPF记录
2.2 HTTPS配置(SSL/TLS)
证书获取
- 免费证书:通过Let’s Encrypt生成(推荐
certbot
工具)bashsudo apt-get install certbot python3-certbot-nginx certbot --nginx -d embedded-tech.com -d www.embedded-tech.com
- 商业证书:购买Symantec、DigiCert等品牌证书,上传至服务器
- 免费证书:通过Let’s Encrypt生成(推荐
Nginx配置示例
nginxserver { listen 443 ssl; server_name embedded-tech.com www.embedded-tech.com; ssl_certificate /etc/letsencrypt/live/embedded-tech.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/embedded-tech.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE+CHACHA20:ECDHE+AESGCM:ECDHE+ECDSA; location / { proxy_pass http://localhost:8080; # 反向代理至应用服务 proxy_set_header Host $host; } }
三、安全加固与防护
3.1 系统安全基础
用户权限管理
- 禁用root直接登录:修改
/etc/ssh/sshd_config
,设置PermitRootLogin no
- 创建普通用户并赋予sudo权限:bash
useradd embeduser && passwd embeduser usermod -aG sudo embeduser
- 禁用root直接登录:修改
防火墙配置
- UFW(Ubuntu)bash
sudo ufw allow ssh/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
- Firewalld(CentOS)bash
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
- UFW(Ubuntu)
3.2 应用层安全
- 输入验证:在Web应用中过滤SQL注入、XSS攻击等恶意输入
- 文件权限:限制Web目录写入权限(如
chmod -R 755 /var/www/html
) - 日志监控
- 启用Nginx访问日志与错误日志:nginx
access_log /var/log/nginx/access.log combined; error_log /var/log/nginx/error.log error;
- 使用Logrotate定期切割日志:bash
sudo vi /etc/logrotate.d/nginx /var/log/nginx/*.log { daily rotate 7 compress missingok notifempty }
- 启用Nginx访问日志与错误日志:
3.3 入侵检测与备份
入侵检测工具
- 安装Fail2ban防御暴力破解:bash
sudo apt-get install fail2ban sudo systemctl enable --now fail2ban
- 部署OSSEC进行主机安全监控
- 安装Fail2ban防御暴力破解:
数据备份策略
- 数据库备份:每日凌晨自动备份MySQL数据库bash
# crontab -e 0 2 * * * mysqldump -u root -p[密码] embedded_db > /backup/db_$(date +\%Y\%m\%d).sql
- 全站文件备份:每周同步至OSS对象存储(如阿里云OSS)
- 数据库备份:每日凌晨自动备份MySQL数据库
四、性能优化配置
4.1 服务器性能调优
内核参数优化(修改
/etc/sysctl.conf
)confnet.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 600 fs.file-max = 655350 vm.swappiness = 10 # 降低内存交换频率
执行
sysctl -p
使配置生效。Nginx性能调优
nginxworker_processes auto; worker_connections 10240; keepalive_timeout 65; gzip on; gzip_types application/json text/css image/svg+xml;
4.2 缓存机制配置
HTTP缓存:在Nginx中设置静态资源缓存策略
nginxlocation ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires 7d; # 缓存7天 add_header Cache-Control "public"; }
反向代理缓存:使用Varnish或Nginx Proxy Cache加速动态请求
nginxproxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:10m max_size=10g; location / { proxy_cache mycache; proxy_cache_key $scheme$host$request_uri; proxy_cache_valid 200 302 12h; # 缓存成功响应12小时 }
五、监控与维护
5.1 实时监控工具
- 系统监控:安装Prometheus + Grafana监控CPU、内存、磁盘IO等指标
- 应用监控:使用New Relic或APM工具追踪Web服务响应时间
- 日志监控:ELK Stack(Elasticsearch+Logstash+Kibana)实现日志集中管理
5.2 维护脚本示例
- 磁盘清理脚本(每周自动删除7天前的临时文件)bash
#!/bin/bash find /tmp -type f -mtime +7 -delete find /var/log -type f -mtime +30 -exec gzip {} \;
六、高可用性配置(可选)
6.1 负载均衡方案
- Nginx负载均衡nginx
upstream embedded_backend { server 192.168.1.10:8080 weight=2; server 192.168.1.11:8080 weight=1; least_conn; # 最小连接数算法 } server { location / { proxy_pass http://embedded_backend; proxy_next_upstream error timeout http_502; } }
6.2 数据库主从复制
- MySQL主从配置
- 主库(Master)配置
/etc/mysql/mysql.conf.d/mysqld.cnf
:confserver-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = embedded_db
- 从库(Slave)执行:sql
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl_user', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0; START SLAVE;
- 主库(Master)配置
七、合规性与文档管理
7.1 合规性要求
- 遵循GDPR(欧盟数据保护法)或等保2.0要求存储用户数据
- 定期进行渗透测试与安全审计(建议每年至少1次)
7.2 配置文档模板
- 建立《站点配置清单》,记录:
- 服务器IP、登录账号、密钥路径
- 域名解析记录、SSL证书过期时间
- 数据库连接信息、备份策略