用node做服务器了,还需要nginx吗

用node做服务器了,还需要nginx吗,第1张

nodejs是一门语言,而nginx是个服务器环境,不一样的~不是同一种东西,没法做比较,nodejs就相当于PHP,那PHP跟nginx有什么区别?没法比较的~nodejs自带了运行的环境各方面的,而PHP没有带,需要配置nginx或者apache来运行PHP

一、NodeJS介绍:

NodeJS是一个让开发者可以快速创建网络应用的服务器端JavaScript平台,同时运用JavaScript进行前端与后端编程,开发者可以更专注于系统的设计以及保持其一致性。

在这篇文章中,我们将向您介绍如何在Ubuntu1404服务器上开始您的NodeJS神奇之旅。

二、如何安装发行稳定版的NodeJS

Ubuntu 1404为了保证跨平台服务体验的一致性,在它的仓库中默认包含了一个版本为01025的NodeJS,这个可能不是最新版本,但是却一定是标准发行版本。

要想获取这个版本的NodeJS,我们只要通过apt包管理工具来安装就可以。在安装之前,最好先更新一下apt包管理工具的本地索引,然后再从Ubuntu仓库中安装NodeJS。

sudo apt-get update

sudo apt-get install nodejs

如果Ubuntu软件仓库中的包正好是你所需要的,那么上述步骤就是在Ubuntu1004下安装NodeJS的全部操作过程。大多数情况下,我们还希望也安装一份NodeJS的包管理工具:npm,您可以通过以下命令安装:

sudo apt-get install npm

NPM将让使得安装NodeJS的模块或者源码包变得非常简单。

在您运行NodeJS的时候请一定要注意,因为与别的工具包相冲突的原因,Ubuntu仓库中可执行的名字是nodejs而不是node。

下面,我们将讨论NodeJS更多种灵活的安装方式。

三、如何通过PPA来安装NodeJS?

一个让你可以保持获得NodeJS最新版本的替代方案是加入由NodeSource维护的PPA(Personal Package Archive)私有包档案。这个方式可以让你获得比Ubuntu仓库更多的NodeJS版本。

首先:你得安装PPA以获得访问它内容的权限。

curl -sL https://debnodesourcecom/setup | sudo bash -

通过上面的命令,PPA将加入到您的系统配置中,并且自动的更新您的本地包缓存,安装完成之后,您可以像之前一样通过apt-get来安装NodeJS。

solo apt-get install nodejs

这里的nodejs安装包包含了nodejs二进制执行文件以及npm可执行文件,所以您无须另外安装npm,然而,为了使一些NPM包能正常工作(比如那些需要多源代码编译的包),你还需要安装build-essentials包。

sudo apt-get install build-essential

四、如何使用NVM来安装?

还有一种使用apt来安装NodeJS的替代方案是使用一个特别设计的工具叫NVM,它的标准叫法是NodeJS版本管理工具(Nodejs Version manager)。

使用NVM,您可以安装多个可方便控制的独立NodeJS环境,它将给您最新版本NodeJS的请求权限,但也将允许你根据APP的需要而使用旧版本的NodeJS。

在开始之前,我们需要从Ubuntu仓库中先安装一些依赖包,NVM将利用这些工具来编译需要的组件:

sudo apt-get update

sudo apt-get install build-essential libssl-dev

一旦这些依赖包安装完成,您可以通过NVM的GitHub项目主页将安装脚本下载下来。版本号可能不尽相同,但是正常来说你可以通过以下方式来下载和安装:

curl https://rawgithubusercontentcom/creationix/nvm/v0161/installsh | sh

上面的命令将下载并且运行安装脚本,安装脚本将把软件安装到你home目录的~/nvm目录下,同时也会在~/profile加入必要的配置。

为了使~/profile的配置生效,您可能需要退出并重新登录您的账户,当然,也可以通过source命令来重新导入~/profile的配置:

source ~/profile

现在你已经安装了NVM,你可以安装NodeJS的各个独立版本。为了找出当前的NodeJS可安装版本,你可以敲入以下命令:

nvm ls-remote

回车可能会显示如下内容:

v0116

v0117

v0118

v0119

v01110

v01111

v01112

v01113

如你所见,当前NodeJS的最新可安装版本是v01113,你可以通过如下命令安装这个版本的程序:

nvm install 01113

通常情况下,NVM会自动切换到最新安装的版本,你可以通过以下命令告诉NVM指定使用已经安装的版本:

nvm use 01113

当你使用NVM安装NodeJS,它的可执行名称是node,通过以下信不信你可以知道当前所使用的NodeJS版本:

node -v

显示:

v01113

如果你安装了多个版本的NodeJS,你可以通过以下命令列出已安装版本:

nvm ls

如果你想把其中一个版本设置为默认的版本,你可以这样:

nvm alias default 01113

现在当一个请求发生时,01113这个版本将自动被选择,您也可以通过这样的别名引用它:

nvm use default

每个版本都将保持其独立的模块和包,并且通过独立的NPM来管理它们,你可以使用NPM的普通模式来为NodeJS项目安装独立的第三方包,它将安装到NodeJS的/node_modules目录下:

npm install express

如果你想将第三方包安装成全局模式(将与其它使用同一个版本NodeJS的项目共用),那么通过使用-g参数就可以实现:

npm install -g express

这个时候包将安装到下面这个目录:

~/nvm/node_version/lib/node_modules/package_name

全局模式安装的包将只允许你在命令行下使用,如果你想在在本地项目中使用,你还需要将它连接进来:

npm link express

如果需要帮助,你可以通过以入命令获取帮助:

npm help

这个web服务器包括三块,appjs是程序入口,负责响应url请求;routejs是路由,用来分发处理复杂的业务逻辑;systemjs是配置文件,用来配置服务器参数,如host、port等

首先来看appjs,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。

接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxxhtml、xxxjs等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在systemjs中配置。

读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,第一张图是代码,第二张图是通过chrome调试工具看到的请求头部时间。

如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于nodejs的并发特性,记得传入回调函数来获得相应的处理结果。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 用node做服务器了,还需要nginx吗

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情