云服务器部署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 相关文章推荐
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
Jan 22 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
node.js中事件触发器events的使用方法实例分析
Nov 23 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 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
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
jQuery 动态酷效果实现总结
2009/12/27 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
python使用Apriori算法进行关联性解析
2017/12/21 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python下简易的单例模式详解
2019/04/08 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Pygame框架实现飞机大战
2020/08/07 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
数组越界问题
2015/10/21 面试题
金蝶的一道SQL笔试题
2012/12/18 面试题
社区七一党员活动方案
2014/01/25 职场文书
乳制品整治工作方案
2014/05/29 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
新教师培训心得体会
2014/09/02 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
德能勤绩工作总结
2015/08/11 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers