准备美国wk服务器前,先确认服务商(如AWS、DigitalOcean、Vultr等)所提供的镜像与规格。选择合适的区域(例如美国东/西),并根据业务量选择CPU、内存与磁盘类型(SSD优先)。
创建实例时建议使用最新的LTS发行版(例如 Ubuntu 22.04 或 CentOS 8/Stream),并保留一个备用快照以便回滚。为避免权限问题,使用非root用户执行日常操作:创建用户并授予sudo权限:
sudo adduser deployer; sudo usermod -aG sudo deployer
同时准备好SSH密钥对:本地执行 ssh-keygen -t rsa -b 4096,将公钥写入服务器的 ~/.ssh/authorized_keys,并设置目录权限为 700、文件权限为 600。
在云控制台中先设置安全组规则:允许SSH(默认22或自定义端口)、HTTP(80)、HTTPS(443)、以及应用所需的端口。建议将SSH端口改为非标准端口并限制来源IP段以提升安全性。
在服务器上使用ufw(Ubuntu)或firewalld(CentOS)进行本地防火墙配置,例如使用ufw:
sudo ufw default deny incoming; sudo ufw default allow outgoing; sudo ufw allow 443/tcp; sudo ufw allow 80/tcp; sudo ufw allow 2222/tcp; sudo ufw enable
修改SSH配置以禁用密码登录并限制最大尝试次数:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no、PasswordAuthentication no、Port 2222,然后重启ssh服务:sudo systemctl restart sshd。
先更新包索引并安装基础工具:
sudo apt update && sudo apt upgrade -y; sudo apt install -y build-essential curl wget git ufw
Node.js:使用官方NodeSource仓库安装稳定版:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -; sudo apt install -y nodejs
Python:Ubuntu自带Python,可用pyenv管理多版本,或安装pip与虚拟环境:
sudo apt install -y python3-pip python3-venv
Java:安装OpenJDK(例如17):
sudo apt install -y openjdk-17-jdk
Nginx:作为反向代理或静态服务器,直接安装并开启:
sudo apt install -y nginx; sudo systemctl enable --now nginx
MySQL/MariaDB:根据需求选择,安装并初始化安全脚本:
sudo apt install -y mariadb-server; sudo mysql_secure_installation
安装完成后,为每个服务配置开机启动并根据需要调整配置文件(例如Nginx站点配置、MySQL用户与权限、Node/PM2或systemd服务文件)。
Docker方式能简化依赖管理并提高可移植性。安装Docker与docker-compose(或compose插件):
curl -fsSL https://get.docker.com | sudo sh; sudo usermod -aG docker $USER
安装Compose V2(如果需要):
sudo apt install -y docker-compose-plugin
在项目目录创建 docker-compose.yml,示例:
version: '3.8'
services:
web:
image: node:18
volumes: ['./app:/usr/src/app']
working_dir: /usr/src/app
command: npm start
ports: ['3000:3000']
db:
image: mariadb:10.6
environment:
- MYSQL_ROOT_PASSWORD=changeme
volumes: ['./mysql:/var/lib/mysql']
使用 docker compose up -d 启动并用 docker compose logs -f 查看日志。为生产环境建议构建自定义镜像并通过CI/CD进行镜像发布,同时配合Nginx作为反向代理并开启HTTPS(可使用certbot自动申请Let's Encrypt证书)。
排查步骤建议按网络、服务、应用三层进行。网络层检查端口与路由:ss -tuln、curl -I http://localhost:80。服务层查看系统日志与服务状态:sudo journalctl -u nginx -f、systemctl status mariadb。应用层通过日志、健康检查与性能分析定位问题。
常见问题与解决要点:
1) 端口不可达:确认云安全组与本地防火墙规则一致并已放行端口;
2) 权限错误:检查文件/目录所有者与权限(例如web用户对静态资源的读写权限);
3) 依赖版本冲突:使用容器或虚拟环境隔离,固定版本号并编写部署脚本;
性能优化建议包括:使用Nginx做静态缓存与反向代理,启用gzip与HTTP/2,配置数据库索引与慢查询日志,使用PM2或systemd管理Node进程并设置自动重启与内存限制,定期清理日志与快照避免磁盘填满。
此外建议部署监控(Prometheus + Grafana)、日志聚合(ELK/EFK)与告警策略,定期备份数据库与配置,并为关键服务配置冗余或自动扩容策略以应对流量峰值。