云服务器部署Node.js项目的方法步骤(小白系列)


Posted in Javascript onMarch 23, 2020

以aliyun为例,选购服务器建议选择CentOS, 配置按照自己的需求选择,付款成功后进入控制台页面,重置root密码即可远程登录服务器。可在控制台点击远程登录,也可在安装了ssh的主机上登录

# 查看公网ip
# 以下为示例公网ip
ssh root@150.77.1.85

环境安装

安装node.js

# As root
curl -sL https://rpm.nodesource.com/setup_12.x | bash -

# No root privileges 
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -

yum install -y nodejs

#如需编译c++插件
yum install gcc-c++ make
# or: yum groupinstall 'Development Tools'

检查是否安装成功

~$ node -v
v12.16.1
~$ npm -v
6.13.0

设置淘宝npm的淘宝镜像

npm config set registry "https://registry.npm.taobao.org

全局安装pm2

npm install pm2 -g

安装nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

下载nginx

# 首先需确认安装以下软件
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

cd /usr/local
mkdir nginx
cd nginx
#下载最新版nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
# 拷贝到nginx文件夹
cp -r /usr/local/nginx/nginx-1.16.1/* /usr/local/nginx/
./configure
make
make install

修改config

cd conf
vi nginx.conf

#修改配置文件
#省略其他不做修改篇配置

http {
  server_tokens off;
  include    mime.types;
  default_type application/octet-stream;
  #access_log logs/access.log main;
  sendfile    on;
  #tcp_nopush   on;

  #keepalive_timeout 0;
  keepalive_timeout 65;

  gzip on;
  
  # 修改此处 nginx会自动加载enabled-server下面所有的配置文件
  include /usr/local/nginx/enabled-server/*;
  ...
}

有时候我们需要部署多个网站,所以一般新建以网站为名的配置文件,如myblog.conf

vi default.conf
# 配置文件
upstream nodepro {
  server 127.0.0.1:3000; #项目运行的端口号, 按实际修改
  keepalive 64;
}

server {
  listen 80; #要监听的端口号
  server_name xxxx.com www.xxxx.com; # 服务器名称,ip地址或域名,可以写多个,用空格隔开

  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_set_header Connection "";
    proxy_pass http://nodepro; # 这里要和最上面upstream后的应用名一致,可以自定义
  }
}

检测nginx配置是否成功

cd ..
./nginx -t
# 修改成功
nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful

启动nginx服务器

./nginx

服务器域名备案

  1. aliyun官网购买域名并实名认证,通过审核后可开始备案
  2. 官网有代备案系统, 点击备案专区,根据提示进行备案(3-15个工作日)
  3. 控制台点击网络与安全 -> 安全组 -> 配置规则 -> 添加安全组规则
  4. 协议类型选择要创建的规则,如mysql(3306),redis(6379),http(80/80),https(443),可自定义

域名解析

  1. 在域名服务中找到域名列表
  2. 点击解析
  3. 点击添加记录,记录类型默认选择A,主机记录可以添加顶级域名和二级域名。解析路线默认即可,记录值添加服务器的公网IP,

最后

在服务器运行你的Nodejs项目

pm2 start app.js

此时即可在外网通过域名访问网站了。此文为学习记录,如有错误,欢迎指正!

到此这篇关于云服务器部署Node.js项目的方法步骤(小白系列)的文章就介绍到这了,更多相关云服务器部署Node.js内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
用js获取电脑信息(是使用与IE浏览器)
Jan 15 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
采用call方式实现js继承
May 20 Javascript
认识Knockout及如何使用Knockout绑定上下文
Dec 25 Javascript
Jquery把获取到的input值转换成json
May 15 jQuery
SpringMVC简单整合Angular2的示例
Jul 31 Javascript
微信小程序 获取session_key和openid的实例
Aug 17 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 Javascript
Vue 嵌套路由使用总结(推荐)
Jan 13 Javascript
vue 封装 Adminlte3组件的实现
Mar 18 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 Javascript
vue ssr+koa2构建服务端渲染的示例代码
Mar 23 #Javascript
详解webpack-dev-middleware 源码解读
Mar 23 #Javascript
vscode调试node.js的实现方法
Mar 22 #Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 #Javascript
Vue-cli3多页面配置详解
Mar 22 #Javascript
redux处理异步action解决方案
Mar 22 #Javascript
JS+CSS实现3D切割轮播图
Mar 21 #Javascript
You might like
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP中的Memcache详解
2014/04/05 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
简短几句jquery代码的实现一个图片向上滚动切换
2011/09/02 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
Python机器学习之决策树算法
2017/12/22 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
kafka-python批量发送数据的实例
2018/12/27 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
师说教学反思
2014/02/07 职场文书
一年级评语大全
2014/04/23 职场文书
应届生求职自荐信
2014/07/04 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers