如何用nodejs搭建web服务器

如何用nodejs搭建web服务器,第1张

[linux运维]
1、下载最新nodejs二进制源码安装包(29MB),V821更新于2017年7月20日 
wget -c >到小鸟云购买云服务器 作为一个穷逼+不熟悉服务器配置的菜鸟。选了最便宜的套餐: CPU: 1核 / 内存: 1024 MB / 带宽:1Mbps / *** 作系统: CentOS 70 购买环节会设置 ssh 登陆密码,记下密码。 登陆到小鸟云,查看购买的实例。 注意公网 IP,下一步会用到
2 登陆服务器 sudo ssh 你的服务器ip地址
提示输入mac的密码,提示输入服务器密码。 输入后连接成功并显示服务器信息,如下:
登陆服务器后。这里对于我这个 Linux 菜鸟有个大坑………就是 Linux 系统常见的目录结构和文件放置区域。 使用 root 用户身份登陆后,会直接进入到下图 红色箭头标出的 root 目录下。先 cd 跳转到上一层, 再 ls -a ,就可以看到类似下图的目录结构了。
3安装 node 和 mongodb
node – 编译后二进制文件应在/usr/local/bin/node 下 mongodb –安装在/usr/local/mongodb 下
下面就一步一步来,首先升级CentOS
yum -y update1
升级后,跳转到 /usr/local/src , 这个文件夹通常用来存放软件源代码
cd /usr/local/src1
下载 nodejs 代码,也可以使用scp命令直接上传,因为下载实在太慢了。
wget >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。

不知不觉间,2019已经接近尾声,在这一年里,我们看到了很多技术的长足发展,其中就包括NodeJS,它已经变得越来越流行,NPM上的各种功能模块(Package)的发布总数,也呈井喷之势,早早的就跨越了100万大关,成为了这个星球上最大的开源库集合。不
更令人惊喜的是,作为一种Web服务器端的技术,在2019年度,我们看到了业界,在基于NodeJS,构建健壮的内容管理系统(CMS)这一应用领域上的持续发力,一批充满现代意味、方便、实用的CMS产品被纷纷推出,下面所列的,则是在2019年度,被广泛使用的一些CMS产品,正在希望使用NodeJS,开发相关以内容管理为核心的网站的朋友,不妨可以关注下。
至于能不能像WordPress一样,成为一款现象级的CMS产品,就一切都要靠时间去检验了,拭目以待吧。
1 KeystoneJs
KeystoneJs是一款功能强大的NodeJs CMS框架。除了其本身提供了丰富而强壮的CMS基础功能外,KeystoneJs还可以用于开发RESTful API的应用、各种非CMS的应用程序,如电子商务平台或者在线论坛等。
特别的,KeystoneJs提供了简化的Admin UI,可帮助开发人员快速的创建美观但功能复杂的CMS后台管理功能。
KeystoneJs的其他一些主要特性如下:
KeystoneJS使用MongoDB数据库进行数据存储,并借助于Mongoose实现了有效的对象文档映射(ODM)。
通过KeystoneJS MVC架构,并使用KeystoneJS的内置模板,可以快速的构建基于数据的相关页面呈现功能。
只需要少量的一些工作,开发人员就能在KeystoneJS的基础上,实现自定义的路由,并实现各种定制功能的开发。
KeystoneJS非常轻量级,同时为数据库管理提供了丰富的API,这对于构建面向内容的网站来说,是非常重要的。
2 Ghost CMS
如果在几年前,以Ghost为代表的Headless(无头类)类的CMS系统,还只是CMS中的一个不特别被人关注的分支的话,那么,2019年度,在CMS领域,最应该引起人关注的,就是Headless(无头类)类的CMS系统,已经蔚为壮观,渐成主流。
这一现象,反映了一个不争的现实,即:一个后台,多种前端,已经越来越成为了业界基本的形态。
Ghost总体来说,更加适合于构建功能复杂的博客类平台,这也是为什么,一众公司,如苹果(Apple)、天空新闻(SkyNews)等都使用Ghost CMS的原因所在。
首先,Ghost的整体设计是非常干净,简单,舒适的,几乎零配置就能拥有非常友好的内容编辑接口。
其次,Ghost内置了强大的SEO功能。您可以在Ghost里,就准备好所有的站点地图、元数据、AMPs、规范标记等等等等和SEO相关的内容。
3 Strapi CMS
了解了Ghost的优雅,不妨来认识下另一个,在2019年度发展堪称迅猛的框架:Strapi CMS!
和Ghost一样,这也是一个Headless的CMS框架,它为开发人员提供了一个强大的、自托管的、高度可定制的内容API系统。
因此,Strapi非常适用于开发系统级别的、具有良好配置、易于管理的Web和移动端应用程序。

NodeJs的优势:

现在的很多的服务器端的语言(PHP,JAVA,ASPnet),有什么问题呢,现在的服务器端的语言在用户访问服务器时,为每个用户链接创建了一个线程,但每个线程大约要耗费2M的内存,如果一个8G内存的服务器,也就能链接4000个左右的用户,如果用户的链接数较大,就必须增加服务器的数量,而且现在用户的链接方式有很多(如app,网页同时访问),这就又涉及到服务器共享的问题,所以服务器怎么支持最大的同时链接用户量就成了一个问题;

NodeJS修改了客户端到服务器端的链接方法,解决了这个问题,他不在为每个客户端创建一个新的线程,而是为每个客户端链接出发一个NodeJs内部进行处理的事件,所以NodeJS具备同时处理多达几万个用户的客户端链接的能力;

NodeJS适合开发的应用程序:

当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候,我们应该考虑使用NodeJs来进行应用程序的开发,例如:

1、聊天服务器:如果聊天的人很多,用户的与服务器之间的并发链接量很大,但是服务器端的数据处理并不复杂;

2、综合类服务网站和电子商务网站的服务器:在这类网站中的服务器端,往往可能每秒存内可以接受多达上千条的数据并且需要将这些数据写入数据库中,NodeJs可以通过其队列机制将这些数据迅速写入缓存区中,然后再通过每一个单独的处理从缓存区中取出这些数据并将其写入数据库中,如果是其他的服务器(如Apache服务器或Tomcat服务器)的话,由于这些服务器采用的是阻塞型I/O机制,因此每条数据写入到数据库中都要等待一段时间(等上一条写完,才能写下一条),但是NodeJs使用的是非阻塞的I/O机制,因此可以实现这些数据到数据库中的写入,而不必再为每条数据的写入而等待一段时间;

总结:

一个规模稍微大点的系统都不是一种开发语言可以搞定的,往往是几种混杂一起,比如c、c做服务器端开发,java做业务逻辑,php等做前端展示,此外还需要消息中间件等等。

nodejs可以很快地在服务器端做原型(原来只有c系和java等能做的事情,性能还很高),而且代码量相对会少很多;另一点是它的语法优势,js闭包等。但它不太适合做cpu密集型处理的工作,只能绕着弯去解决,据说这次QCon会有人分享这方面的研究成果,可以关注下。

每种语言都有它适合的领域,没必要强求一门语言可以解决所有事情,拥有其它语言的特性,只有不断的tradeoff把系统做出来才是目标。这些都是丛书上看到总结的,还望指正

准备
首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v012版本。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建js文件,可以命名为serverjs,代码如下:
var >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12781564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存