Skip to content

嵌入式技术方案站点配置指南

一、服务器环境配置

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根域名指向服务器
    Awww服务器公网IP带www前缀域名指向
    CNAMEblogblog.embedded-tech.com子域名(如博客)指向二级域名
    TXT@v=spf1 mx ~all反垃圾邮件SPF记录

2.2 HTTPS配置(SSL/TLS)

  • 证书获取

    • 免费证书:通过Let’s Encrypt生成(推荐 certbot 工具)
      bash
      sudo apt-get install certbot python3-certbot-nginx  
      certbot --nginx -d embedded-tech.com -d www.embedded-tech.com
    • 商业证书:购买Symantec、DigiCert等品牌证书,上传至服务器
  • Nginx配置示例

    nginx
    server {
        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
  • 防火墙配置

    • 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

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  
      }

3.3 入侵检测与备份

  • 入侵检测工具

    • 安装Fail2ban防御暴力破解:
      bash
      sudo apt-get install fail2ban  
      sudo systemctl enable --now fail2ban
    • 部署OSSEC进行主机安全监控
  • 数据备份策略

    • 数据库备份:每日凌晨自动备份MySQL数据库
      bash
      # crontab -e  
      0 2 * * * mysqldump -u root -p[密码] embedded_db > /backup/db_$(date +\%Y\%m\%d).sql
    • 全站文件备份:每周同步至OSS对象存储(如阿里云OSS)

四、性能优化配置

4.1 服务器性能调优

  • 内核参数优化(修改 /etc/sysctl.conf

    conf
    net.ipv4.tcp_fin_timeout = 30  
    net.ipv4.tcp_keepalive_time = 600  
    fs.file-max = 655350  
    vm.swappiness = 10  # 降低内存交换频率

    执行 sysctl -p 使配置生效。

  • Nginx性能调优

    nginx
    worker_processes auto;  
    worker_connections 10240;  
    keepalive_timeout 65;  
    gzip on;  
    gzip_types application/json text/css image/svg+xml;

4.2 缓存机制配置

  • HTTP缓存:在Nginx中设置静态资源缓存策略

    nginx
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {  
        expires 7d;  # 缓存7天  
        add_header Cache-Control "public";  
    }
  • 反向代理缓存:使用Varnish或Nginx Proxy Cache加速动态请求

    nginx
    proxy_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
      conf
      server-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;

七、合规性与文档管理

7.1 合规性要求

  • 遵循GDPR(欧盟数据保护法)或等保2.0要求存储用户数据
  • 定期进行渗透测试与安全审计(建议每年至少1次)

7.2 配置文档模板

  • 建立《站点配置清单》,记录:
    • 服务器IP、登录账号、密钥路径
    • 域名解析记录、SSL证书过期时间
    • 数据库连接信息、备份策略