租了个阿里云服务器及Node.js镜像的使用

前言

每个前端也许都想搭建个自己的站点,拥有自己的专属域名。在这之前,还是先了解一下云服务器吧:
阿里云服务器
轻量服务器还是ECS服务器?

我选择的是轻量服务器,应用镜像可以先随便选一个,反正可以重装。一开始选择了应用镜像为wordpress,window下远程登录服务器可以使用putty软件,也可以直接用阿里控制台。

一、登录服务器后,自己熟悉一下服务器
1、查看云服务器内核的信息:uname -a
image
2、切换到root用户:

sudo su root
这样就可以访问root文件夹,否则是没有权限的:

image.png

切回到admin:sudo su admin

3、在root用户下修改密码:passwd
image
4、top:查看任务,及内存的使用
5、ls:查看目录下的文件,相当于window的dir
6、cat fileName:查看文件内容
7、关于yum

YUM是LINUX类系统上的自动更新组件安装系统。就象windows上的自动更新。都是可以自能分析当前系统的安装环境并根据具体命令网络升级安装所需组件。(具体百度)

8、网站代码部署:下载安装winscp,连接服务器。主机名为阿里云公网ip。
image

登录成功:

这是WordPress镜像的目录

网站根目录:/home/www/htdocs,相当于Tomcat下的\webapps\ROOT目录。将测试页面test.html拖进里面测试一下,在浏览器中访问:

http://服务器ip/test.html,可以看到自己的页面。

8.连接数据库:

轻量应用服务器预装了MySQL服务端,但是没有装客户端,也没有默认开启权限,在电脑使用MySql客户端连接不上。使用命令在服务器上装一个:yum install mysql;
但仍然不可用,心想全部装了它,命令yum install mysql*,近500M,然后听搞后台的小伙伴说装起来会很麻烦的,那还是算了。另外我也要切换到nodejs的应用镜像。

image.png

在这里就可以重装了,挺快的几分钟。

二、Nodejs镜像的使用:

https://zhidao.baidu.com/question/394990939779999805.html?fr=iks&word=centos%D4%CB%D0%D0mogodb&ie=gbk

实际开发的过程中,我们通常会选择Linux系统作为我们的服务器系统,以此来保证我们的产品能够更加安全、高效的运行。所以学一下还是有必要的。


image.png

装了之后,我就像在windows下那样运行命令查看一下版本:


image.png

不是装好了吗?怎么不可以用?

于是我找了这篇教程部署Node.js项目(CentOS),然后看到了这句话:

image.png

我进入到node的目录下(需要root权限),在其子目录都运行了一遍,还是不行呀:
image.png

显然我们的服务器是nvm方式,于是我又运行了教程中的以下命令:


image.png
echo ". ~/.nvm/nvm.sh" >> /etc/profile
source /etc/profile

/etc/profile文件里是有关Linux环境变量的东西,这里将nvm环境变量加进去并初始化。
我再试了试,虽然它报了点东西,不知道是什么意思,但终于是有用了


image.png

退出到其他目录也可以:


image.png

版本有点低,安装一个高版本的nodejs:


image.png
三、关于NVM:

https://www.cnblogs.com/SpecterGK/p/8550392.html
每次切换了node版本后,下次打开终端,又会回到它默认的版本,此时可以设置默认版本:
nvm alias default version_name
例如:
nvm alias default v9.3.0

好的,下面就创建个nodejs服务试试:
(1)创建一个文件夹:
mkdir test
mkdir(make directory)这个命令是用于创建文件夹的,使用非常简单,mkdir+文件夹名称,之间一定要有空格。

(2)后面的就像在Windows下创建node服务差不多,进入文件夹:cd test
运行npm init --yes
npm i
npm install express --save
然后在本机写个简单的server.js(或者直接在winscp上写):

var express = require('express');  
var app = express();              


app.get('/', function (req, res) {  
  res.send('Hello World!');
  console.log('test')
});
console.log('test')
app.listen(3000);

(3)最后就是用winscp把server.js放上去,最终就是这样,跟Windows下一样。


image.png

(4)然后我们启动它:node server.js

image.png

终于可以了。
(5)然后我们在浏览器中访问它,这时候会报错:
image.png

需要设置防火墙:


image.png

然后添加规则,选择自定义,然后输入端口,server.js中监听的是3000


image.png

好,浏览器也可以访问了。
image.png

四、遗留问题

虽然这样是可以了,但遗留了很多问题,简单记录:
(1)直接访问ip报错

image.png

??不带端口访问则默认为80,也就是http的端口。
运行命令:netstat -anp|grep 80
发现是nginx在占用,nginx服务应该是搭起的了,防火墙也默认开启了80。那为报错??

(2)关闭控制台或者关闭远程连接,nodejs服务也会跟着关闭。

解决办法:
因为启动的时前台进程,关闭控制台进程就没了。可以使用PM2来管理进程://www.greatytc.com/p/e709b71f12da?utm_source=desktop&utm_medium=timeline

于是我这样启动服务:pm2 start server.js
然后,即使关闭控制台了,node服务也会继续运行。
pm2 logs命令可以查看日志。
我把一个Ionic demo挂在了上面:http://xxx.23.61.159:3000

(3) 切换node版本后pm2不可用:需要在当前版本再安装一个pm2,运行:
npm install -g pm2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容