当前位置: 首页 > news >正文

常用的web服务器简述

在这里插入图片描述

一.Web服务器介绍

‌Web服务器是一种运行于互联网上的计算机硬件或软件,用于存储、处理和传输网页和其他网站内容。‌ 它通常运行在服务器上,绑定服务器的IP地址并监听某一个TCP端口,接收来自客户端的请求,然后向客户端发送所请求的网页或相关资源。Web服务器通常通过HTTP(超文本传输协议)或HTTPS(加密的HTTP)与客户端进行通信,并使用域名系统(DNS)来将网址转换为IP地址,以便正确定位和访问所请求的网页‌。

二.Web服务器的主要功能

  • ‌接收请求‌:Web服务器监听特定的网络端口,等待客户端发起HTTP请求。一旦收到请求,它会解析请求的内容,包括请求的URL、HTTP方法、请求头等‌。
  • 处理请求‌:服务器根据请求的内容,决定如何处理该请求。它可以根据URL路由请求到不同的处理程序或处理逻辑,也可以执行静态文件的读取和发送‌。
  • 生成响应‌:Web服务器根据处理请求的结果,生成HTTP响应。响应包括HTTP状态码、响应头和响应体。响应体可以是HTML页面、JSON数据、文件等‌。
  • 发送响应‌:Web服务器将生成的HTTP响应发送回客户端。它使用网络协议(如TCP/IP)将响应发送给客户端,并确保数据的正确传输‌。
  • 保持连接‌:Web服务器可以保持与客户端的持久连接,以便处理多个请求。这可以提高性能和效率,减少网络开销‌。

三.常用的Web服务器介绍

‌常用的Web服务器包括Apache、Nginx、Microsoft IIS、Tomcat、Lighttpd等。这些Web服务器可以用来托管网站、应用程序和服务,并处理对这些资源的HTTP请求。

  1. Apache是目前世界上使用最多的Web服务器,市场占有率达60%左右。它是一个开源软件,可以运行在几乎所有的Unix、Linux、Windows系统平台上。Apache的优势在于其开源代码开放,功能丰富,支持动态内容生成、CGI脚本、SSL和TLS等。然而,它也有缺点,即消耗的内存较高‌。
  2. Nginx是一个轻量级的Web服务器,也可以作为反向代理服务器和负载均衡器使用。它具有高性能和高并发处理能力,常用于高流量的网站和服务。Nginx的优点是资源消耗低,适合处理高负载的网站和应用程序‌。
  3. Microsoft IIS是微软公司开发的Web服务器,主要用于Windows操作系统。它提供了强大的特性和控制,如ASP.NET支持、FTP、SMTP、虚拟主机和安全认证等。IIS的特点包括安全性、强大和灵活‌。
  4. Tomcat是一个用于Java应用程序的开源Web服务器,通常与Apache一起使用。它技术先进、性能稳定,深受Java爱好者的喜爱。Tomcat适合运行Java Web应用,具有高性能和稳定性‌。
  5. Lighttpd是一个轻量级的Web服务器,适用于低系统资源的服务器运行环境下。它具有高性能和高可扩展性,适合处理高负载的网站和应用程序。Lighttpd的特点包括快速、安全、内存开销低,可以在多种操作系统上运行‌。

四.Apache/ Tomcat/ Nginx 三者区别

1.Apache和Tomcat对比

共同点:

  • 两者都是Apache组织开发的; 两者都有HTTP服务的功能; 两者都是免费的。

不同点:

  • Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等),而Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器。
  • Apache是一个Web服务器环境程序,启用它可以作为Web服务器使用,不过只支持静态网页,如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页而这个JSP解释器就是Tomcat。
  • Apache:侧重于HTTPServer,Tomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想。
  • Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。
  • 实际使用中Apache与Tomcat常常是整合使用:如果客户端请求的是静态页面,则只需要Apache服务器响应请求。如果客户端请求动态页面,则是Tomcat服务器响应请求。因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。可以理解Tomcat为Apache的一种扩展。

2.Nginx与Apache对比

Nginx相对于Apache的优点:轻量级,同样起Web 服务,比Apache占用更少的内存资源抗并发Nginx 处理请求是异步非阻塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单,提供负载均衡社区活跃,各种高性能模块出品迅速。

Apache 相对于Nginx的优点,Apache的 Rewrite 比Nginx 的强大支持动态页面;支持的模块多,基本涵盖所有应用;性能稳定,而Nginx相对Bug较多。

两者优缺点比较:Nginx 配置简洁, Apache 复杂;Nginx 静态处理性能比 Apache 高 3倍以上;Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;Apache 的组件比 Nginx 多;Apache是同步多进程模型,一个连接对应一个进程;Nginx是异步的,多个连接(万级别)可以对应一个进程;Nginx处理静态文件好,耗费内存少;动态请求由Apache去做,Nginx只适合静态和反向;Nginx适合做前端服务器,负载性能很好Nginx本身就是一个反向代理服务器 ,且支持负载均衡。

总结

Tomcat是动态解析容器,处理动态请求,是编译JSP\Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低。可以说Tomcat 、Nginx和Apache各有千秋,每个服务器都有自己擅长处理的领域,共同承担起目前大部分程序对服务器的需求。


http://www.mrgr.cn/news/48057.html

相关文章:

  • pyqt5冻结+分页表
  • Unity学习1:初接触,C#的一些基础,和相关报错
  • python爬虫----爬取视频实战
  • C# 实现 WinForm 全屏置顶
  • 什么是根服务器?有什么作用?
  • 基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
  • ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。
  • go开发环境设置-安装与交叉编译
  • 【C++进阶】关联式容器map的使用
  • Ubuntu安装Apache教程
  • 排队论:根据λ(到达率)和 μ(服务率)的用户等待时间公式
  • 打开传奇提示connection closed是什么意思?怎么解决?
  • 动态爬虫管理平台构建与实现(论文+源码)_kaic
  • 小米开放式耳机好不好用?小米、南卡、倍思、飞利浦热门开放式耳机一周测评!
  • 工业4G路由R10提升物流仓储效率
  • 【系统架构设计师】案例专题六(8大系统架构设计之1): 信息系统架构设计考点梳理
  • TikTok代理IP哪里找?
  • 数据结构:快排
  • C语言基础语法——类型转换
  • 【文心智能体 | AI大师工坊】通过知识库优化智能体『万圣节之纸人还魂』:探索恐怖剧本杀的奇幻之旅
  • MySQL基本语法、高级语法知识总结以及常用语法案例
  • TON(二)编译中涉及的更多细节
  • 1234555
  • 力扣第一题:两数之和(图解版)
  • Python 爬取天气预报并进行可视化分析
  • Conda的基本使用