在VPS上部署TypeScript应用程序:逐步指南
您用TypeScript编写了一个很酷的应用程序。本地运行一切完美,但现在是将项目展示给世界的时候了。部署到VPS(虚拟专用服务器)是一个合理且灵活的选择。与云平台不同,VPS让您完全掌控环境。
在本文中,我们将详细讲解在VPS上部署TypeScript应用程序的逐步过程。我们将使用Node.js、PM2进行进程管理,以及Nginx作为反向代理。所有示例均使用TypeScript。
假设您已具备Linux和SSH的基础操作技能。
1. 服务器准备与连接
第一步是租用一台VPS(如DigitalOcean、Vultr、Timeweb等),并通过SSH连接。
ssh root@your_server_ip立即更新软件包并安装必要的工具:
apt update && apt upgrade -yapt install curl git nginx -y安装Node.js(建议使用LTS版本):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -apt install -y nodejs检查版本:
node -vnpm -v2. 克隆仓库与构建TypeScript
现在克隆您的项目。本例中,我们将使用一个用TypeScript编写的简单Express应用程序:
git clone https://github.com/your_username/your_repository.gitcd your_repository安装依赖:
npm installTypeScript需要编译为JavaScript。通常使用以下命令:
npm run build在package.json中,应定义为:
{ "scripts": { "build": "tsc", "start": "node dist/index.js" }}检查编译后的文件是否出现在dist文件夹中。
3. 安装与配置PM2
PM2是Node.js的进程管理器。它可以在应用程序崩溃时自动重启,支持日志和集群模式。
全局安装PM2:
npm install pm2 -g启动应用程序:
pm2 start dist/index.js --name "my-typescript-app"保存进程列表,以便PM2在服务器重启后恢复它们:
pm2 savepm2 startupPM2会输出一条需要执行的命令(通常是systemctl enable pm2-root)。复制并运行它。
您可以使用以下命令检查状态:
pm2 status4. 配置Nginx作为反向代理
Nginx将接收80端口(HTTP)的请求,并将其转发到您的应用程序(例如,端口3000)。
创建配置文件:
nano /etc/nginx/sites-available/my-typescript-app插入以下代码(将server_name替换为您的域名或IP):
server { listen 80; server_name your_domain.ru www.your_domain.ru;
location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}激活站点:
ln -s /etc/nginx/sites-available/my-typescript-app /etc/nginx/sites-enabled/nginx -tsystemctl restart nginx现在您的应用程序可以通过IP或域名访问了。
5. 使用Certbot配置HTTPS(SSL)
如今没有HTTPS是不行的。我们将使用Let's Encrypt和Certbot。
安装Certbot:
apt install certbot python3-certbot-nginx -y运行证书签发:
certbot --nginx -d your_domain.ru -d www.your_domain.ru