云服务器部署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 相关文章推荐
禁止IE用右键的JS代码
Dec 30 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
js实现可键盘控制的简单抽奖程序
Jul 13 Javascript
jQuery树形控件zTree使用小结
Aug 02 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
JavaScript实现的选择排序算法实例分析
Apr 14 Javascript
vue element-ui table表格滚动加载方法
Mar 02 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
JS document内容及样式操作完整示例
Jan 14 Javascript
Vue如何实现组件间通信
May 15 Vue.js
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学习资料汇总与网址
2007/03/16 PHP
php去除重复字的实现代码
2011/09/16 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
javascript解决小数的加减乘除精度丢失的方案
2016/05/31 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
Python中%r和%s的详解及区别
2017/03/16 Python
python运行其他程序的实现方法
2017/07/14 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
大学生专科学习生活的自我评价
2013/12/07 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
广告设计应届生求职信
2014/03/01 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
集中采购方案
2014/06/10 职场文书
php7中停止php-fpm服务的方法详解
2021/05/09 PHP