目前最主流的三个Web服务器是Apache、Nginx、 IIS。
Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
服务器是一种被动程序,只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。
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
apache:
- rapache的 rewrite 比nginx 的强大
- 支持动态页面
- 模块多
- 性能稳定
nginx:
- 轻量级, 占用内存及资源少
- 并发性更强
- 配置文件简洁
- 提供负载均衡
- 处理静态文件比apache快
需要性能的 web 服务用 nginx 。如果不需要性能只求稳定用 apache。