云服务器部署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事件问题
Sep 05 Javascript
加载jQuery后$冲突的解决办法
Jul 09 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 Javascript
JavaScript实现上下浮动的窗口效果代码
Oct 12 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
使用JS中的Replace()方法遇到的问题小结
Oct 20 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
Mar 14 Javascript
vue指令v-html使用过滤器filters功能实例
Oct 25 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
php设计模式  Command(命令模式)
2011/06/17 PHP
php汉字转拼音的示例
2014/02/27 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
详解python中的json和字典dict
2018/06/22 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
求职简历自荐信范文
2013/10/21 职场文书
大一军训感言
2014/01/09 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
酒店管理求职信
2014/06/09 职场文书
特此通知格式
2015/04/27 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
生日宴会祝酒词
2015/08/10 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python