一台新云主机nodejs项目部署过程

某云服务商的一个全新的云服务器,系统为centos。需要在上面部署一套系统,包括了java、nodejs等等。本文记录一下与nodejs有关的部署过程。有些操作是熟悉、简单的,但也记录出来,权当流水账。

背景

同事在工作群发了一个txt文件,给出了云服务商网址、账号、密码,要求部署一套系统并测试。信息描述很简单,要求描述很简单。

云服务器

查找IP

由于不提供服务器IP,只能自己查。登陆云服务商网站,首页是控制台,但看不到任何主机和服务。点击“资源”->“我的资源”,找到了云主机——专业术语叫“弹性云服务器ECS”。原来控制台默认是“北京一”,而购买云主机在“北京四”,只是不知道位于西南地带为何要买北京那边的云主机。大牌服务商网站上似乎都是这样的,所以要选择好云主机所在的地区。

找到“弹性云服务器”页面就可以看到云主机的信息,包括名称、规格、镜像、IP地址等。知道了IP地址,就可以用ssh工具连接了了。

云主机有内网、外网2个IP地址,不同可用区,内网不相通,相同可用区不同用户,内网不相通。只有同一账户相同可用区,才可相通。——当然,这仅是根据笔者的使用经验得到的结论。

开放端口

一般云服务器只使用默认的端口,如22、80等,每个服务商策略不同,开放的端口也不同。为了让客户端连接服务器,还需要开放指定端口,比如2500。
在控制台“安全组”页面可以找到设置的地方,选择云主机实例名称就能看到基本信息。一般地,出方向(即从服务器访问其它地址)默认全部开放即可。主要是配置入方向,即配置哪些端口可以被访问。点击“添加规则”,可以选择协议(如TCP、UDP),然后输入端口号,源地址一般选“0.0.0.0/0”即可(表示任意地址)。为了方便,建议添加对应的描述信息。

云主机可以安装一些防止暴力攻击的工具。有次查看,发现ssh登陆的22端口每天都有大量IP尝试登陆,一旦被破解,后果严重。解决办法有加强密码并定期修改,修改默认的22端口,限制IP段访问等等。对于限制IP访问的方式,会带来的一个问题,一旦IP地址发生变化,就无法登陆了,比如公司网络的公网IP,与家里网络的公司IP是不同的,在公司可以登陆,回到家不一定能登陆,即使是公司网络,公网IP也会经常发生变化。便利与安全是矛盾的,看如何取舍。

云主机的控制台控制,从名称、操作方式等看,大牌厂家都是差不多的。

部署

先查看一下基本信息,使用的命令如下:

查看内核版本:uname -a
查看cpu: cat /proc/cpuinfo 
查看内存: free -g
查看磁盘: df -h

了解这些信息,可以对云主机有一个大概的认识。综合来看,这台服务器CPU、内核够猛,只是磁盘不够。

软件环境

全新的云主机,很多必要的工具是没有安装的。下面列出要安装的工具:
由于要用git下载源码,因而安装之:yum install git
安装nodejs环境:

yum install -y nodejs
// 查看版本
node -v
v6.17.1
npm -v
3.10.10

安装pm2工具:

npm install -g pm2
pm2 --version
3.5.1

redis环境

项目使用redis作存储,安装之:

yum install redis

安装完毕后,服务器为/usr/bin/redis-server,配置文件为/etc/redis.conf。注意,直接执行redis-server是不带配置文件的,使用指定配置文件命令为redis-server /etc/redis.conf

修改配置为后台运行,编辑/etc/redis.conf,将daemonize no改为daemonize yes
下面设置开机自动启动。首先找到/etc/rc.d/rc.local文件,默认情况下不启用的,文件注释如下:

It is highly advisable to create own systemd services or udev rules
to run scripts during boot instead of using this file.
In contrast to previous versions due to parallel execution during boot
this script will NOT be run after all other services.
Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure
that this script will be executed during boot.

大概意思是:1、强烈建议不要使用这个文件,要自己创建系统服务。2、这个文件的脚本在所有服务运行之后才会执行。3、如果一定要使用,则自行添加可执行属性。
既然强烈要求不使用,那我们依旧去尝试一下。
执行chmod +x /etc/rc.d/rc.local添加可执行属性。在文件最后添加redis-server /etc/redis.conf,保存。然后重新启动云主机——注意,在生产环境中,服务、服务器的重启操作都要十分谨慎,否则容易造成大问题。这里是测试环境,重启无影响,云主机重启都非常快,大概几十秒就完成重启的过程。

源码环境

nodejs项目一般依赖很多工具,进入工程目录,执行npm install即可安装所有依赖的模块。根据模块多寡,时间或多或少。
之后,使用pm2 start就可以启动程序了。

至此,项目部署完毕。

安装指定环境

前面安装的node版本较低,不一定能适用于项目,因此,还需要安装特定的版本。

npm install -g n
n v8.7.6

进入/usr/bin/目录,将node和npm改名:

mv node node-6
mv npm npm-3

再创建新版本的链接文件:

ln -s /usr/local/bin/node /usr/bin/node
node -v
ln -s /usr/local/bin/npm /usr/bin/npm

注:不知为何,在/usr/bin//usr/local/bin/都有同名的程序,删除前者,后者却无法找到,这2个目录都是在PATH中的。

从背景信息知道,虽然说起来很简单,但真正做起来却不易,道路也长。其实,人生没有容易二字,不管是工作还是生活。

李迟 2019.08.20 晚

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vbs是一种用于编写Windows操作系统批处理脚本的编程语言,它可以用来自动化执行某些任务或操作。WPS云是WPS Office套件中的一项云服务,它提供了在线文档编辑、存储和共享的功能。那么,如何使用vbs脚本来进行WPS云下载呢? 首先,我们需要使用vbs的Shell对象来执行一些命令。我们可以使用Shell对象的常用方法来进行一些操作,比如运行程序、执行命令等等。通过vbs脚本,我们可以模拟用户在WPS云客户端上执行的操作,从而实现文件或文档的下载。 在编写vbs脚本时,我们可以使用WScript对象来创建一个Shell对象,并使用WScript对象的CreateObject方法来创建或引用其他的COM组件。WScript对象还提供了一些方便的方法,比如Quit方法可以退出当前的脚本。 接下来,我们可以使用Shell对象的Run方法来执行WPS云客户端的命令行参数。通过命令行参数,我们可以指定需要下载的文件或文档的路径,并设置其他一些参数,比如下载文件的保存路径、下载文件的名称等等。 在执行完下载文件的命令后,我们可以使用vbs脚本的消息框来显示下载的结果或者进度,以便给用户一些反馈。 总之,使用vbs脚本来进行WPS云下载可以通过模拟用户操作,实现自动化下载文件或文档的功能。通过编写相应的vbs脚本,我们可以在WPS云客户端上实现一些自动下载的操作,提高工作效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值