1.
准备与服务器选择
- 选择:VPS(Hetzner、IONOS)或独服;确认数据中心位于德国。
- 规格:CPU、内存、磁盘(SSD)、带宽,根据业务预估给出冗余2倍。
- 访问:准备管理员邮箱、控制面板、API Key;记录公网IP与默认登录方式。
2.
初始化操作系统与基础配置
- 建议系统:Debian 12/Ubuntu 22.04 或 CentOS Stream。
- 更新系统(Debian/Ubuntu):sudo apt update && sudo apt upgrade -y;CentOS:sudo dnf update -y。
- 设置时区:sudo timedatectl set-timezone Europe/Berlin。设置locale:sudo locale-gen de_DE.UTF-8 && sudo update-locale LANG=de_DE.UTF-8。
3.
安全与远程访问配置
- SSH:禁用密码登录,使用密钥认证。编辑 /etc/ssh/sshd_config:PasswordAuthentication no,Restart sshd。
- 添加用户:sudo adduser deploy && sudo usermod -aG sudo deploy。复制公钥到 /home/deploy/.ssh/authorized_keys。
- 更改SSH端口(可选):Port 22022 并在防火墙打开对应端口。
4.
防火墙与网络策略
- UFW(Ubuntu)示例:sudo ufw allow 22022/tcp; sudo ufw allow 80,443/tcp; sudo ufw enable。
- iptables/nftables:写入持久规则并验证:sudo iptables-save。
- 内网限制:若有管理后台,仅允许企业IP白名单访问。
5.
依赖与运行时清单(先验核查)
- 常见:Docker, docker-compose, openjdk-11/17, nginx, php(如需), mysql/mariadb, certbot。
- 构建工具:build-essential, git, curl, wget, python3, pip。安装示例(Debian):sudo apt install -y build-essential git curl wget python3-pip。
6.
安装Docker与容器化部署
- 安装:curl -fsSL https://get.docker.com | sh;添加用户到docker组:sudo usermod -aG docker deploy。
- docker-compose:sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose。
- 验证:docker run hello-world && docker-compose --version。
7.
数据库安装与配置
- MariaDB/MySQL 安装(Debian):sudo apt install -y mariadb-server。
- 初始化安全:sudo mysql_secure_installation,设置root密码、删除匿名用户、禁用远程root。
- 创建库与用户:CREATE DATABASE prod; CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass'; GRANT ALL ON prod.* TO 'app'@'%'; FLUSH PRIVILEGES。
8.
Web服务器与反向代理
- 安装Nginx:sudo apt install -y nginx。
- 示例站点配置:/etc/nginx/sites-available/app.conf 指定 server_name,proxy_pass 到 127.0.0.1:8080,启用并 sudo nginx -t && sudo systemctl reload nginx。
- SSL:使用 Certbot 获取 Let's Encrypt 证书:sudo apt install certbot python3-certbot-nginx && sudo certbot --nginx -d domain.de。
9.
Java/Python/Node 等运行环境
- Java:sudo apt install -y openjdk-17-jdk;验证 java -version。
- Python:sudo apt install -y python3-venv python3-pip;创建虚拟环境 python3 -m venv venv。
- Node:使用nvm安装并切换版本,安装生产依赖并构建前端。
10.
systemd 服务与自动启动
- 创建服务单元:/etc/systemd/system/myapp.service 示例内写 ExecStart=/usr/bin/java -jar /opt/myapp/app.jar。
- 启用并启动:sudo systemctl daemon-reload; sudo systemctl enable --now myapp。
- 查看日志:sudo journalctl -u myapp -f。
11.
监控、备份与运维脚本
- 监控:部署Prometheus + Grafana 或使用现成 SaaS(如Datadog)。
- 备份:定期 mysqldump 并 rsync 到异地备份,或使用快照(云提供商)。示例脚本:mysqldump -u root -p'pass' prod > /backup/prod_$(date +%F).sql。
- 日志轮转:配置 logrotate,避免磁盘爆满。
12.
测试与上线检查清单
- 联通性:curl -I http://localhost 和 https。
- 依赖检测:检查端口监听 ss -tuln,检查服务状态 systemctl status。
- 性能基线:使用 ab 或 wrk 做压测,记录响应时间与系统资源。
13.
常见故障排查命令
- 网络:ping, traceroute, ss -tuln, netstat。
- 日志:sudo journalctl -u 服务名,/var/log/nginx/error.log,/var/log/syslog。
- 权限问题:检查文件属主与权限 ls -l,修复 chown/chmod 并重启服务。
14.
问:在德国服务器上部署时,是否需要考虑法律与数据主权?
问:在
德国服务器上部署时,是否需要考虑法律与数据主权? 答:是,需要遵守德国与欧盟的数据保护法规(GDPR),确保用户数据处理、备份与第三方共享有合法依据并记录处理活动。
15.
问:如何确保在德国 VPS 上的时钟与证书同步不会失败?
问:如何确保在德国 VPS 上的时钟与证书同步不会失败? 答:配置 systemd-timesyncd 或 chrony 同步 NTP(ntp server 如 time.google.com),并确保证书续签脚本(certbot renew)基于正确时间运行,定期验证 cron 系统任务。
16.
问:部署完成后如何做日常运维与安全巡检?
问:部署完成后如何做日常运维与安全巡检? 答:建立周报与告警:监控指标、磁盘/内存预警、证书到期、定期漏洞扫描与系统更新(备份后),以及定期演练恢复流程。
来源:企业部署实操 德国服务器软件下载安装与环境依赖清单