部署Nodejs服务器并绑定域名

本文共有1634个字,关键词:nodejs搭建nodejs服务器

学习node的时候一直都是在本地通过http://localhost:3000访问就行了,但如何在服务器上运行node并且通过公网域名访问?接下来尝试通过nginx反向代理搭建node服务器,并且不影响服务器上其他网站。

准备工作:

  • 服务器:Centos7.2
  • 服务器已安装node
  • 服务器已安装Nginx
  • 把域名node.fengxianqi.com解析到服务器ip

目标:

  • 访问node.fengxianqi.com,输出hello word!

配置步骤:

  1. 配置Nginx,使得访问node.fengxianqi.com时候转到http://localhost:3000处理请求,配置文件如下:
server {
    listen       80;
    server_name  node.fengxianqi.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;
    }
    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

配置后重启Nginx,service nginx restart

  1. 在服务器网站目录下(如:/www/node/),建立项目文件,这里为了简单直接写一个app.js文件就行:
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`服务器运行在 http://${hostname}:${port}/`);
});
  1. 运行app.js。通常我们学习时是直接node app.js这样执行的,但在服务器上这样做的话,一退出服务器运行就停止了,所以要装forever让程序保持运行:
sudo npm -g install forever

开启进程:

forever start /path/app.js

查看所有进程:

forever list

关闭所有进程:

forever stopall
  1. 启动后我们通过浏览器访问node.fengxianqi.com就行了。

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

fengxianqi

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
已有 3 条评论
  1. hh:

    请问如何将RESTful api从http转到https?

    1. fengxianqi: 回复 @hh

      如果只是转发http到https,可以用nginx重定向到https上去哦。如:
      server {

      listen 80; server_name fengxianqi.com www.fengxianqi.com; return 301 https://www.fengxianqi.com$request_uri;

      }