云服务器部署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 相关文章推荐
Js 刷新框架页的代码
Apr 13 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
易操作的jQuery表单提示插件
Dec 01 Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
Mar 15 Javascript
微信小程序中setInterval的使用方法
Sep 29 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
vue实现固定位置显示功能
May 30 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 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
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php简单获取目录列表的方法
2015/03/24 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
区别JavaScript函数声明与变量声明
2018/09/12 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python reduce 函数使用详解
2017/12/05 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
python写入文件自动换行问题的方法
2019/07/05 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
基于python实现坦克大战游戏
2020/10/27 Python
房地产出纳岗位职责
2013/12/01 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
一文搞懂Python Sklearn库使用
2021/08/23 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python