目前最主流的三个Web服务器是Apache、Nginx、 IIS。
Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
服务器是一种被动程序,只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。
WEB 服务协议
- WEB 服务应用层使用HTTP协议(超文本传输协议)。
- HTML(标准通用标记语言下的一个应用)文档格式。--index.html
- URL:浏览器统一资源定位器。
- 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议(Secure Sockets Layer),SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
- WWW 采用的是浏览器/服务器结构。
- web服务器只能解析静态页面;动态页面:只要和数据库进行连接的都属于动态页面,比如java写的代码,PHP的代码,python的代码。
- web服务器:apache (参考服务器配置、优化。静态并发量最高2000) 、nginx(tengine) 、IIS :端口全部为80,https为443端口。
web容器:
web 中间件(Middleware):是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通。中间件处在操作系统和更高一级应用程序之间。他充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。
Web容器:为了与页面产生交互操作,来获取动态结果,需要一些扩展机制能够让HTTP服务器调用服务端程序,Servlet技术产生了,可以把Servlet简单理解为运行在服务端的Java小程序,但是Servlet没有main方法,不能独立运行,因此必须把它部署到Servlet容器中,由容器来实例化并调用Servlet。而Tomcat和Jetty就是一个Servlet容器。为了方便使用,它们也具有HTTP服务器的功能,因此Tomcat或者Jetty就是一个“HTTP服务器 + Servlet容器”,我们也叫它们Web容器。
包含关系:Web服务器>Web中间件>Web容器
Web服务器:IIS、Apache、Nginx、Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish、Lighttpd等
Web中间件:Tomcat、Jboss、Jetty、Weblogic、Webshere、Glasshfish等
Web容器:IIS(asp容器)、Tomcat(servlet容器)、Jboss(EJB容器)
常见的web中间件也叫web容器:
php的中间件: php-fpm(php端口9000)
java的中间件: (tomcat端口8080。并发量到150就不行了)、jboss、Weblogic
python: uwsgi(默认端口5000)
前端页面:静态元素: .html .img js css swf ;配合:apache、nginx。
后端页面:动态元素:根据不同的开发语言: .php .jsp ;配合:java、php、python
SQL
数据库-mysql、mariadb
web 服务器区别
apache:
- rapache的 rewrite 比nginx 的强大
- 支持动态页面
- 模块多
- 性能稳定
nginx:
- 轻量级, 占用内存及资源少
- 并发性更强
- 配置文件简洁
- 提供负载均衡
- 处理静态文件比apache快
需要性能的 web 服务用 nginx 。如果不需要性能只求稳定用 apache。