云服务器部署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与C# Windows应用程序交互方法
Jun 29 Javascript
Javascript 验证上传图片大小[客户端]
Aug 01 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
Jan 21 Javascript
JavaScript里四舍五入函数round用法实例
Apr 06 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
Sep 12 Javascript
详解js中的原型,原型对象,原型链
Jul 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
laravel 修改记住我功能的cookie保存时间的方法
2019/10/14 PHP
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
python内置数据类型之列表操作
2018/11/12 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
2014办公室年度工作总结
2014/12/09 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
判断Python中的Nonetype类型
2021/05/25 Python
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python