玩转服务器---运行环境搭建

前面两篇文章,讲到了云服务的选购,以及域名的注册备案,那么我们项目上线的准备工作其实已经完成一半了。下一步其实就是在服务器上搭建我们的运行环境了。每个人的项目可能运行在不一样的环境,所以在这里我不准备一一介绍,我在这里以我的环境作为示例,我的个人博客后端服务器采用Node.js + MongoDB,所以环境搭建:Node.js + pm2 + MongoDB,前端我采用了Angular框架,因为前后端端口不一致,发起请求会跨域,所以我安装了nginx服务器,将前端项目打包后放在nginx80端口,每次前端发起请求请求MongoDB数据库的数据, 就通过nginx反向代理,代理到4001端口,去取到服务端的数据,然后返还给前端进行页面的渲染。

搭建完环境我们如何进行管理呢,总不能在云服务器耶搭建一个开发环境进行项目启动吧?在讲云服务器的选购的时候我其实有讲到过,我们可以下载putty,进行登录云服务器,通过服务器公网ip,用户名,密码进行登录。putty下载地址:链接:https://pan.baidu.com/s/1ui5oTXH5g8nylwVSmVmGCg 提取码:8c2x

通过putty登录到服务器之后,可以进行运行环境的安装。安装完成之后,下一步如何上传我们的代码呢?我们可以使用FileZilla来进行将代码上传到云服务器

代码上传到服务器以后,就是启动服务了,了解过Node.js的同学都知道,Node.js中通过node xxx.js启动服务,如果直接通过node app来启动,如果报错了可能直接停止整个进程运行,所以,我们服务端不可能这样去做,所以我们刚才说到的pm2就起到了作用。PM2node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。我们可以下载xshell进行服务进程的监控。

到这里,我们就大概知道我们环境配置需要什么了,在我们本地电脑我们需要安装putty,FileZilla,XShell三个软件,用于进入云服务器操作,上传代码,启动服务。在云服务器我们需要安装Node.jsMongoDB, pm2, nginx,既然知道具体需要配置的环境,接下来就是开始环境的正式搭建了。

1.安装Node.js

首先,在putty中连接上云服务器

第二步,使用命令行下载Node.js到服务器,我这里以10.6.0版本进行演示,使用wget https://npm.taobao.org/

mirrors/node/v10.6.0/node-v10.6.0-l

inux-x64.tar.xz进行下载Node.js安装包.

我们可以看到命令行提示:

Saving 提示:‘node-v10.6.0-linux-x64.tar.xz

’,这就表示我们在linux服务器下载Node.js压缩包成功。

第三步,解压安装包,使用tar -xvf + Node.js压缩包名称可以进行解压,在这里输入tar -xvf node-v10.6.0-linux-x64.tar.xz,开始解压压缩包

默认进入服务器是在root文件夹,解压成功后我们可以把安装包移到其他文件夹,然后需要进行最后一步:设置软连接。很多同学可能都在windows环境下装过各类环境,也知道环境变量如何去设置,但是其实linux设置软连接会比windows系统还来的简单。linux一般把执行路径重定向到usr/sbin中,在linux系统设置软连接,其实只需要一条命令就完成了:ln -s Node.js安装文件夹/bin/node /usr/sbin/node, 比如我将Node.js安装在usr/local文件夹,那我设置软连接的命令就是:ln -s usr/local/node-v10.6.0-linux-x64/bin/node /usr/sbin/node,就可以设置Node.js软连接了。

设置完node软连接,我们还需要设置npm软连接,同理我们设置npm软连接的命令为:ln -s usr/local/node-v10.6.0-linux-x64/bin/npm /usr/sbin/npm.

设置完成软连接我们可以进行测试软连接是否成功设置。

如果和图中一样出现图中的版本号,那就代表Node.js环境到这里安装成功了。

2.安装pm2

在之前的一篇文章我有介绍过npmnpm 提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。最好的地方是npm代码库不仅供Node.js使用,也可以让前端工程师使用。所有的前端JavaScript库都以npm包的形式存在。许多前端工具如Webpack都是用Node.js编写的。

我们在服务器需要一个node进程管理工具,pm2是一个非常棒的工具。接下来我们需要使用npm全局安装pm2,命令:npm install -g pm2-g其实就表示全局安装,如果你只想在某个项目中安装pm2,进入读音项目根目录,将命令改成:npm install --save-dev pm2,--save-dev就代表在当前项目安装pm2.

安装pm2完成,下一步一样,是设置pm2的软连接,ln -s usr/local/node-v10.6.0-linux-x64/bin/pm2 /usr/local/bin.

设置完成pm2的软连接,我们可以测试pm2是否正常使用。

我们可以看到pm2已经可以正常使用。我们可以通过pm2 list查看我们目前运行的node进程的状态。关于pm2具体如何使用在这里我不做具体解释,过几天我会单独写一篇文章讲解这几些工具的具体使用。

3.安装MongoDB

定位到usr/local,我准备将MongoDB安装到该文件夹

下载MongoDB压缩包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.

4.tgz

解压压缩包

tar -zxvf mongodb-linux-x86_64-3.6.4.tgz

编辑环境变量

vim ../../etc/profile

编辑成功环境变量,切换到mongoDB安装目录下的bin目录,

cd /usr/local/mongodb/mongodb-linux-x86_64-3.6.4/bin

新建mongodb.conf文件

启动MongoDB:

使用命令:./mongod -f mongodb.conf启动MongoDB.

4.安装nginx

(1)gcc环境安装

安装nginx需要将官网下载的源码进行编译,由于nginx是c语言开发,所以依赖于gcc环境。

命令:yum install gcc-c++

(2)PCRE pcre-devel安装

PCRE是一个Perl库。nginx http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:yum install -y pcre pcre-devel

(3)zlib安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 可以使用 zlib http 包的内容进行 gzip压缩 ,所以需要在 Centos 上安装 zlib 库。命令:yum install -y zlib zlib-devel

(4)openSSL安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

(5)nginx安装

进入usr/local,我们将nginx安装在该目录下,nginx一般有开发板和稳定版两个版本,可以自行选择其中之一进行安装。

下载nginx压缩包

wget http://nginx.org/download/nginx-1.1.10.tar.gz

解压压缩包

tar -zxvf nginx-1.1.10.tar.gz

进入nginx安装目录

cd nginx-1.1.10

对nginx源码进行编译

#./configure

#make

#make install

到这里nginx就安装成功了,nginx一般安装完会放在/usr/share,进入nginx文件夹,启动nginx,命令:./nginx

看到这两条进程状态,就代表启动nginx成功了。然后,在本地浏览器访问http://服务器公网ip,就可以出现nginx欢迎界面。

由于我已经将我的博客项目放到nginx80端口,所以访问服务器ip就可以直接进入我的博客首页。到这里说明nginx成功安装了。

到这里关于服务器环境配置全部完成,下一步就是将代码同步到服务器了,然后启动服务看运行效果。下一篇讲如何使用FileZilla上传代码到服务器以及如何使用Xshell进行node进程服务的管理。本篇内容到这里就结束了,如果对你有帮助请帮我将文章推荐给更多的人,感谢你的观看!

System.out.println("点个赞吧!"); console.log("点个赞吧!"); print("点个赞吧!"); printf("点个赞吧!\n"); cout << "点个赞吧!" << endl; Console.WriteLine("点个赞吧!"); Response.Write("点个赞吧!"); alert("点个赞吧!") echo "点个赞吧!"

原文发布于微信公众号 - 周先生自留地(zhanyue_org)

原文发表时间:2019-03-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券