接下来我将详细讲解如何将Node.js项目部署到阿里云服务器(CentOS)的完整攻略。
环境准备
为了能够成功地将Node.js项目部署到阿里云服务器,我们需要先准备好以下环境:
- 一台阿里云ECS服务器(CentOS 7.0 64位)
- 安装Node.js(v10.16.0)和npm(v6.9.0)
- 安装Git
步骤说明
- 登录阿里云ECS服务器,并安装Git。
sh
sudo yum install git
- 克隆项目代码到服务器。
sh
git clone https://github.com/xxxx/xxxx.git
- 进入项目目录,并安装依赖。
sh
cd /path/to/project
npm install
- 构建打包项目。
sh
npm run build
- 配置Nginx代理。在
/etc/nginx/conf.d
目录下新建一个配置文件,并将以下内容粘贴进去:
“`nginx
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
“`
上述配置将请求转发至项目的3000
端口,所以在运行Node.js项目时,默认要监听3000
端口。如果你的项目监听的是其他端口,请在上述配置中进行相应的修改。
- 重启Nginx服务使配置生效。
sh
sudo systemctl restart nginx
- 运行项目。
sh
npm start
经过以上步骤,你就可以将Node.js项目成功地部署到阿里云服务器上了。
示例1:
如果你的项目中有node-sass
依赖,那么在安装依赖时有可能会因为无法下载二进制文件而失败。这时候,可以使用--unsafe-perm
选项进行安装:
npm install --unsafe-perm
示例2:
如果你的服务器中有多个Node.js项目,那么你可以为每个项目配置一个Nginx代理。比如,你可以为example1.com
和example2.com
分别配置代理,并将请求分别转发到http://127.0.0.1:3000
和http://127.0.0.1:4000
上。针对不同的项目,你需要创建不同的配置文件并进行相应的修改。