如何在Ubuntu上使用pm2和Nginx部署Node.js应用
原创怎样在Ubuntu上使用pm2和Nginx部署Node.js应用
在开发Node.js应用时,选择一个合适的部署方案至关重要。本文将指导您在Ubuntu系统上使用pm2和Nginx来部署您的Node.js应用。pm2是一个生产级别的Node.js进程管理器,而Nginx是一个高性能的HTTP和反向代理服务器。通过结合这两个工具,您可以确保您的应用稳定运行并处理高并发请求。
### 准备工作
在开端之前,请确保您的Ubuntu系统已更新至最新状态:
bash
sudo apt update
sudo apt upgrade
### 安装Node.js
首先,您需要在您的Ubuntu系统上安装Node.js。您可以通过以下命令来安装Node.js:
bash
sudo apt install nodejs npm
### 创建Node.js应用
接下来,创建一个基本的Node.js应用。在这个例子中,我们将创建一个单纯的HTTP服务器。
bash
mkdir my-node-app
cd my-node-app
npm init -y
echo 'const http = require("http");' > server.js
echo 'const hostname = "127.0.0.1";' >> server.js
echo 'const port = 3000;' >> server.js
echo 'const server = http.createServer((req, res) => {' >> server.js
echo ' res.statusCode = 200;' >> server.js
echo ' res.setHeader("Content-Type", "text/plain");' >> server.js
echo ' res.end("Hello World ");' >> server.js
echo '});' >> server.js
echo 'server.listen(port, hostname, () => {' >> server.js
echo ' console.log(`Server running at http://${hostname}:${port}/`);' >> server.js
echo '});' >> server.js
### 安装pm2
pm2可以帮助您管理您的Node.js应用。通过以下命令安装pm2:
bash
sudo npm install pm2@latest -g
### 启动应用并使用pm2
使用pm2启动您的Node.js应用:
bash
pm2 start server.js
这会将您的应用以守护进程的形式运行,并管理它的生命周期。
### 配置Nginx
接下来,我们需要配置Nginx来反向代理我们的Node.js应用。
1. 安装Nginx:
bash
sudo apt install nginx
2. 创建一个新的Nginx配置文件:
bash
sudo nano /etc/nginx/sites-available/my-node-app
3. 输入以下配置:
nginx
server {
listen 80;
server_name yourdomain.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;
}
}
4. 将配置文件链接到Nginx的sites-enabled目录:
bash
sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled/
5. 重载Nginx以应用配置更改:
bash
sudo nginx -t
sudo systemctl reload nginx
### 验证部署
现在,您的Node.js应用应该可以通过Nginx访问了。在浏览器中输入您的域名或IP地址,您应该能看到“Hello World”的输出。
### 使用pm2守护应用
pm2不仅可以帮助您启动应用,还可以监控和重启应用。要使pm2在启动时自动加载应用,可以使用以下命令:
bash
pm2 startup
然后,利用提示运行推荐的命令以添加pm2到系统启动脚本。
### 总结
通过本文,您已经学会了怎样在Ubuntu上使用pm2和Nginx部署Node.js应用。这些工具的组合可以确保您的应用在服务器上稳定运行,并能够处理高并发请求。期待这篇文章对您有所帮助!