在Linux下部署Node.js应用通常包括以下几个步骤:
安装Node.js: 在Linux系统上,你可以使用包管理器(如apt、yum或pacman)安装Node.js。例如,在基于Debian的系统上,可以使用以下命令安装Node.js:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
这将安装Node.js的LTS(长期支持)版本。
上传应用代码: 将你的Node.js应用代码上传到Linux服务器。你可以使用SCP、SFTP或其他文件传输方法。
安装依赖项: 在服务器上,进入应用目录,然后运行以下命令以安装应用的依赖项:
npm install
配置环境变量:
根据需要配置环境变量,例如数据库连接字符串、API密钥等。你可以在/etc/environment文件中设置全局环境变量,或者在应用的环境配置文件中设置。
设置进程管理器: 为了确保你的Node.js应用在后台持续运行并在发生故障时自动重启,建议使用进程管理器,如PM2。首先,使用npm安装PM2:
npm install pm2 -g
然后,在应用目录中启动PM2:
pm2 start app.js --name my-app
这里,app.js是你的Node.js应用的入口文件,my-app是应用的名称。
配置反向代理(可选): 如果你想通过域名访问你的Node.js应用,可以使用Nginx或Apache作为反向代理。这样,你可以将HTTP请求转发到Node.js应用,并处理HTTPS、负载均衡等功能。
以Nginx为例,首先安装Nginx:
sudo apt-get install nginx
然后,创建一个新的Nginx配置文件:
sudo nano /etc/nginx/sites-available/my-app
在配置文件中,添加以下内容(根据实际情况修改):
server {
listen 80;
server_name my-app.com;
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;
}
}
这里,my-app.com是你的域名,3000是Node.js应用监听的端口。
最后,启用新的Nginx配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
配置防火墙(可选): 如果你的服务器运行在云上,或者你启用了防火墙,确保开放Node.js应用监听的端口。例如,使用ufw开放端口3000:
sudo ufw allow 3000
现在,你的Node.js应用应该已经在Linux服务器上部署并运行了。访问你的域名或服务器IP地址,你应该能看到应用的主页。