模拟 Apache 服务器|学习笔记

简介: 快速学习模拟 Apache 服务器

开发者学堂课程【Node.js 入门与实战模拟Apache服务器】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/588/detail/8264


模拟Apache服务器


只是一个index.html带了一个图片跟一个css,如果每一个文件都带很多个图片跟css,按照之前的方式写,服务器很耗时。

所以说要解决这个问题,这个问题就是网页中带了一堆静态资源,可以用简单的方式使用,无论是css,图片都是静态资源,只要是静态资源可以放在同一个目录之下,或者放在几个目录之下也是可以。

在网站目录下建一个public文件夹,这些静态资源例如css、图片、js文件放在这个目录之下,只要用户访问这个目录下任何一个资源,直接根据你找这个资源的路径,访问什么资源,直接拼上这个路径,在磁盘上直接返回这个文件,省去了一些复杂的判断,直接用请求,请求css下的index.css,就用网站当前目录下的pubilc目录,所有的静态资源放在这个目录,用这个目录拼上请求资源的路径,比如拼上css下的.css,刚好这个路径找到对应的文件,找到之后,直接返回,这样就省去了一堆if else的判断,要实现这个需求就得使用到Apache,模拟Apache服务器,发现,启动Apache,把所有的静态资源放到同一个目录之下,就会自动返回。

打开inedx.html文件的源代码,文件里有链入css文件,anoceanofsky.css这个css文件里有图片,

模拟Apache服务器步骤

App.js

模拟服务器

// 加载 http模块

var http = require( ‘http’);

var http = require( ‘path’);

var fs=require(‘fs’);

var mime = require(‘mime’);

// 创建服务

http.createServer(function (req, res) {

// 所有的静态资源都是在public这个目录下

// 1.获取用户请求的路径

// req.url

// /css/index.css

// /images/index.png

//  2.获取pubilc目录的完整路径

var publicDir = path.join(__dirname,public’);// apache这个目录

//  3.根据public 的路径和用户请求的路径,最终计算出用户的静态资源的完整路径 Apache\public\abc\xxx\css\index.css,跟publi拼起来,就是完整的路径,

var filename=path.join(pubicDir,req.url);

//  Console.log(filename);//启动这个服务,当访问根目录的时候,

// 4.根据文件的完整路径去读取该文件 ,如果读取到了,则把文件返回给用户,如果读取不到,则返回404

fs.readFile(filename,function(argument) {

// body...

if (err) {

res.end(‘文件不存在404‘);

} else {

 // 通过第三方模块mine,来判断不同的资源对应的Contnet-Type的类型

res.setHeader(‘Contnet-Type’,mime.getType(filename));

//根据请求路径,跟public拼接一下,如果找到了,就读取返回,如果没找到就404返回,这样还是存在问题,用户请求的可能是css,可能是图片,可能是index这个静态文件,什么文件都有可能,返回文件要设置contnet-type,如果读取的是图片,图片也分png,jpg,或者说是word文件,当用户请求不同的资源的时候,根据用户请求文件的后缀名称获取对应的contnet-type类型,mine这个模块怎么使用,首先 npm install mine,安装完毕之后加载这个模块get type就可以了,以前是lookup方法,或者可以反过来,给contnet-type,对应的类型是什么,两个方法都有

安装成功以后,在代码里加载这个模块,安装完成之后多了一个noed_modules,在这个文件夹下面就有mine模块,

// 如果找到了用户要读取的文件,那么直接把该文件返回给用户

res.end(data);

}

});

//  res.end(‘over’);

}).listen(9090, function () {

console.log( ‘http://localhost:9090');

});

image.png

测试执行代码,public目录下,有index.html,浏览器输入http://localhost:9090/index.html正常显示, 首先index.html的status值是200,里面又访问css文件,stylesheet并且这个css文件也返回了,还有一个背景图片,这样就实现了静态资源的访问.

相关文章
|
5月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
5月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
5月前
|
数据库连接 Apache Java
【独家揭秘】图书管理系统的奇幻之旅:一文看透Apache Wicket如何从想法萌芽到服务器上翩翩起舞?
【8月更文挑战第31天】本文通过实战案例,详细介绍从概念到部署的Apache Wicket应用开发全流程。以在线图书管理系统为例,涵盖应用概念定义、项目创建、架构设计、首页编写、数据库交互及应用部署等关键步骤。通过Maven或Gradle引入Wicket依赖,设计包结构,并使用JPA或Hibernate处理数据持久化。最终,将应用配置并部署到Tomcat或Jetty服务器,帮助你全面掌握Wicket开发技巧。
59 0
|
5月前
|
监控 Linux 测试技术
|
5月前
|
监控 安全 网络安全
如何保护 Apache 服务器的安全
【8月更文挑战第23天】
123 0
|
弹性计算 Ubuntu 数据安全/隐私保护
ECS 配置 Apache2 使用体验
本篇文章讲解了 ECS 上使用 Ubuntu 20.4 系统配置 Apache2 并公网访问的实例
ECS 配置 Apache2 使用体验
|
7天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
6天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。
|
13天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
3天前
|
弹性计算 安全 搜索推荐
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。

热门文章

最新文章

推荐镜像

更多