在VPS上部署TypeScript应用:分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在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 -v


2. 克隆仓库与构建TypeScript



现在克隆您的项目。本例中,我们将使用一个用TypeScript编写的简单Express应用程序:



git clone https://github.com/your_username/your_repository.gitcd your_repository


安装依赖:



npm install


TypeScript需要编译为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 startup


PM2会输出一条需要执行的命令(通常是systemctl enable pm2-root)。复制并运行它。



您可以使用以下命令检查状态:



pm2 status


4. 配置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

博客

书籍推荐