在CentOS上部署Node.js微服务涉及几个步骤,包括安装Node.js、设置环境、编写和测试代码、以及配置和启动服务。以下是一个详细的指南:
首先,你需要在CentOS上安装Node.js。你可以使用NodeSource的二进制分发库来安装最新版本的Node.js。
添加NodeSource库:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
安装Node.js:
sudo yum install -y nodejs
验证安装:
node -v
npm -v
确保你的环境变量设置正确,以便Node.js和npm命令可以在任何地方运行。
echo "export PATH=\$PATH:/usr/local/bin/node:/usr/local/bin/npm" >> ~/.bashrc
source ~/.bashrc
编写你的Node.js微服务代码,并使用npm进行依赖管理。
my-node-service/
├── app.js
├── package.json
└── package-lock.json
package.json
npm init -y
npm install express
app.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
node app.js
访问 http://localhost:3000
应该会看到 “Hello World!”。
为了在生产环境中运行Node.js应用,你需要进行一些配置和启动服务的步骤。
PM2是一个进程管理器,可以帮助你管理和监控Node.js应用。
安装PM2:
sudo npm install pm2 -g
启动应用:
pm2 start app.js --name my-node-service
查看应用状态:
pm2 status
停止应用:
pm2 stop my-node-service
重启应用:
pm2 restart my-node-service
为了提高性能和安全性,你可以使用Nginx作为反向代理。
安装Nginx:
sudo yum install nginx -y
启动Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx:
编辑 /etc/nginx/conf.d/my-node-service.conf
文件:
server {
listen 80;
server_name your_domain.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;
}
}
重启Nginx:
sudo systemctl restart nginx
确保你的防火墙允许HTTP和HTTPS流量。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
使用PM2的监控和日志功能来管理你的应用。
查看日志:
pm2 logs my-node-service
监控应用:
pm2 monit
通过以上步骤,你应该能够在CentOS上成功部署一个Node.js微服务。