Nodejs项目使用Nginx部署

本文介绍如何在服务器上安装Nginx及Node.js,并实现多站点配置。主要内容包括服务器购买与登录、软件安装、多站点配置、Node.js项目搭建与启动等步骤。

一、购买服务器

二、通过命令行窗口登录远程服务器

      ssh  username@服务器ip地址

     例如: ssh root@47.93.4.10

三、如果是刚起的服务器

        apt-get   update // 检索新的包列表

        apt-get install ngixn // 安装nginx

         安装nodejs环境:  可以参考该文章

四、多站点配置

   

cd /etc/nginx/sites-available/
cp default web1.com
别忘了建立个软连接,不然新站点不会生效滴:ln -s /etc/ngix/sites-available/web1.com /etc/nginx/sites-enabled/web1.com现在就开始修改我们的新站点配置:vim web1.com

server {
        listen       80;
        server_name  order.lookk.cn;    #要访问的域名,我这里用的测试域名,如果有多个,用逗号分开

        charset utf8;

        location / {
            proxy_pass       http://127.0.0.1:8080;               #映射到代理服务器,可以是ip加端口,   或url 
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       }
    }

    server {
        listen       80;
        server_name  javatest.lookk.cn;    #要访问的域名,我这里用的测试域名,如果有多个,用逗号分开

        charset utf8;

        location / {
            proxy_pass       http://127.0.0.1:3000;               #映射到代理服务器,可以是ip加端口,   或url 
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       }
    }

五、创建 Ndejs项目

     安装 :pm2 ,pm2是Nodejs后台管理工具

    npm i -g pm2

    如果你的项目运行的是:3000(该端口需要跟上面的server内部的location中的proxy_pass端口相同)

    使用pm2 开启项目

    pm2 start app.js(项目入口)

六、重启nginx

nginx -s reload

<think> 我们参考用户提供的引用内容,结合用户需求(在Ubuntu系统上使用Nginx部署Node.js项目的完整步骤),给出详细步骤。 注意:用户之前的问题是关于将Node应用部署在特定IP的8083端口并配置二级域名,现在用户要求的是完整步骤,因此我们整合之前回答和引用内容,形成系统化流程。 我们将步骤分为: 1. 服务器准备(包括系统更新、安装基本工具) 2. 安装Node.js环境 3. 上传并部署Node.js应用(使用PM2管理) 4. 安装和配置Nginx作为反向代理 5. 配置二级域名和SSL(可选) 6. 验证与调试 以下为详细步骤: </think> ### Ubuntu系统使用Nginx部署Node.js项目的完整步骤 #### 一、服务器环境准备 1. **系统更新与工具安装** ```bash sudo apt update && sudo apt upgrade -y # 系统更新 sudo apt install -y build-essential git curl # 安装基础工具 ``` 2. **安装Node.js环境** ```bash curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - # 添加NodeSource仓库 sudo apt install -y nodejs # 安装Node.js LTS版 node -v && npm -v # 验证安装 ``` 3. **安装PM2进程管理器** ```bash sudo npm install -g pm2 # 全局安装 pm2 startup systemd # 设置开机自启 # 按提示执行生成的命令,例如: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u $USER --hp $HOME ``` #### 二、部署Node.js应用 1. **上传项目代码** ```bash # 本地执行(将项目上传到服务器的/home目录) scp -r /本地/项目路径 ubuntu@服务器IP:/home/project-name ``` 2. **安装依赖并启动** ```bash ssh ubuntu@服务器IP cd /home/project-name npm install # 安装依赖 pm2 start app.js --name "node-app" # 使用PM2启动应用 pm2 save # 保存进程列表 ``` 3. **验证应用运行** ```bash curl http://localhost:3000 # 替换为应用实际端口 pm2 list # 查看运行状态 ``` #### 三、Nginx安装与配置 1. **安装Nginx** ```bash sudo apt install -y nginx sudo systemctl enable nginx # 设置开机启动 ``` 2. **创建反向代理配置** ```bash sudo nano /etc/nginx/sites-available/node-app ``` 配置文件内容: ```nginx server { listen 80; server_name subdomain.yourdomain.com; # 二级域名 location / { proxy_pass http://localhost:3000; # 指向Node端口 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; # WebSocket支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } access_log /var/log/nginx/node-app.access.log; error_log /var/log/nginx/node-app.error.log; } ``` 3. **启用配置** ```bash sudo ln -s /etc/nginx/sites-available/node-app /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置 sudo systemctl reload nginx # 重载服务 ``` #### 四、域名与安全配置(可选) 1. **DNS解析设置** - 在域名控制台添加A记录: ``` 记录类型:A 主机记录:subdomain (二级域名前缀) 记录值:服务器IP ``` 2. **HTTPS配置** ```bash sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d subdomain.yourdomain.com # 自动配置SSL ``` 3. **防火墙设置** ```bash sudo ufw allow 80 # HTTP sudo ufw allow 443 # HTTPS sudo ufw allow 22 # SSH sudo ufw enable ``` #### 五、验证部署 1. **访问测试** - 浏览器访问:`http(s)://subdomain.yourdomain.com` - 应显示Node应用内容 2. **日志检查** ```bash tail -f /var/log/nginx/node-app.access.log # Nginx访问日志 pm2 logs node-app # Node应用日志 ``` #### 关键组件功能说明 | 组件 | 作用 | |-------------|----------------------------------------------------------------------| | **Node.js** | 运行JavaScript服务端环境 | | **PM2** | 进程守护、崩溃自动重启、日志管理、负载均衡[^2] | | **Nginx** | 反向代理、负载均衡、SSL终端、静态文件服务、访问控制[^1] | | **Certbot** | 自动化SSL证书申请和管理(Let's Encrypt) | > **注意**:若项目使用特殊端口(如8083),需在Nginx配置中修改`proxy_pass`值,并在防火墙开放对应端口:`sudo ufw allow 8083`
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值