生产环境部署
本指南涵盖生产环境部署注意事项,包括 Nginx 反向代理、TLS、systemd 服务和监控。
典型的生产环境部署包含:
互联网 → Nginx (TLS) → EasyShell Web (:18880) → EasyShell Server (:18080) MySQL 8.0 ← EasyShell Server Redis 7 ← EasyShell ServerNginx 反向代理
Section titled “Nginx 反向代理”配置 Nginx 提供 Web 前端静态文件并代理 API 请求到 Server:
server { listen 443 ssl http2; server_name easyshell.example.com;
ssl_certificate /etc/letsencrypt/live/easyshell.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/easyshell.example.com/privkey.pem;
location / { proxy_pass http://127.0.0.1:18880; proxy_set_header Host $host; }
location /api/ { proxy_pass http://127.0.0.1:18080; 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; }
location /ws/ { proxy_pass http://127.0.0.1:18080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_read_timeout 86400; }}Systemd 服务
Section titled “Systemd 服务”如果你使用 Docker Compose 运行 EasyShell(推荐),创建一个 systemd 单元来管理 Compose 栈:
[Unit]Description=EasyShell (Docker Compose)After=docker.serviceRequires=docker.service
[Service]Type=oneshotRemainAfterExit=yesWorkingDirectory=/opt/easyshellExecStart=/usr/bin/docker compose up -dExecStop=/usr/bin/docker compose down
[Install]WantedBy=multi-user.target启用并启动:
sudo systemctl daemon-reloadsudo systemctl enable easyshellsudo systemctl start easyshell使用 cron 设置每日自动备份:
0 2 * * * mysqldump -u easyshell -p'密码' easyshell | gzip > /backup/easyshell-$(date +\%Y\%m\%d).sql.gz至少保留 7 天的备份,并定期测试恢复。
- 使用非 root 用户运行 Server
- 启用 MySQL SSL 连接
- 在生产环境中设置 Redis
requirepass - 配置防火墙规则限制数据库和 Redis 端口的访问
- 启用审计日志用于合规
- 轮转应用日志防止磁盘耗尽
监控以下端点:
| 端点 | 用途 |
|---|---|
/actuator/health | 应用健康检查 |
/actuator/metrics | Prometheus 兼容指标 |
/actuator/info | 应用版本信息 |
配置监控系统(Prometheus、Grafana 等)抓取指标端点,并在服务降级时发出告警。