要把静态内容(如HTML、CSS、JS、图片)上传到美国VPS,常用方法有:SFTP/FTP、rsync和scp。推荐使用SFTP或rsync,更安全、可靠。
1) 在本地安装SFTP客户端(如FileZilla、WinSCP)。
2) 使用VPS的IP、端口(通常22)和SSH密钥或用户名/密码登录。
3) 进入网站目录(常见:/var/www/html 或 /srv/www/your_site)。
4) 将本地静态文件拖拽到远程目录,设置文件权限:chmod -R 755 /var/www/html(适当调整)。
通过上述方式,浏览器访问域名或IP即可查看静态页面。若使用Nginx/Apache,记得检查站点配置并重载:sudo systemctl reload nginx 或 sudo systemctl reload apache2。
部署动态内容需配置运行时:PHP通常配合PHP-FPM+Nginx/Apache;Python可用Gunicorn+Nginx或uWSGI;Node.js直接通过进程管理器(如PM2)运行并反向代理到Nginx。
1) SSH登录VPS:ssh root@your_vps_ip。
2) 安装Node.js与PM2:curl -fsSL https://deb.nodesource.com/setup_16.x | bash -,然后 apt install -y nodejs 和 npm install -g pm2。
3) 将代码上传到/var/www/your_app,安装依赖:npm install。
4) 使用PM2启动:pm2 start app.js --name your_app,并设置开机自启:pm2 startup 与 pm2 save。
在Nginx站点配置中加入proxy_pass到本地端口(例如http://127.0.0.1:3000),然后重载Nginx。
scp示例:scp -P 22 -r ./dist root@vps_ip:/var/www/html
rsync示例(高效同步):rsync -avz --delete -e "ssh -p 22" ./dist/ root@vps_ip:/var/www/html/
SSH远程执行示例:ssh root@vps_ip "cd /var/www/html && ls -la"
1) 使用SSH密钥比密码更安全,建议禁用root密码登录并配置非root用户。
2) rsync的--delete会删除目标多余文件,谨慎使用。
3) 上传后检查权限与属主:chown -R www-data:www-data /var/www/html(视发行版与Web用户而定)。
可以在VPS上创建一个裸仓库并使用post-receive钩子自动检出:在VPS上创建 /home/git/your_repo.git(--bare),本地添加为远程并push,钩子脚本执行git --work-tree=/var/www/html --git-dir=/home/git/your_repo.git checkout -f。
1) 在CI配置中加入部署步骤,通过SSH密钥把构建产物或代码rsync到VPS。
示例(GitHub Actions简化):使用actions/checkout构建,然后使用appleboy/scp-action或rsync上传,或通过SSH执行远程部署脚本。
自动化部署减少人为错误,建议:使用密钥管理(Secrets)、限定SSH仅允许CI服务器IP并使用非root用户执行部署脚本。
常用数据库:MySQL/MariaDB、PostgreSQL。安装后要做:创建数据库与账户、设置远程连接策略(若需要)、备份与权限控制。
示例命令(MySQL):
CREATE DATABASE mydb; CREATE USER 'web'@'localhost' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON mydb.* TO 'web'@'localhost'; FLUSH PRIVILEGES;
1) 将域名A记录指向美国VPS公网IP。
2) 使用Let's Encrypt免费证书并自动续期(Certbot):sudo apt install certbot python3-certbot-nginx,然后 sudo certbot --nginx。
1) 防火墙(ufw/iptables)只开放必要端口(22/80/443及应用端口)。
2) 定期更新系统(apt update && apt upgrade),并备份数据库与代码。
3) 使用监控(如Prometheus/Grafana或简单的uptime监控)和日志分析,及时发现问题。