Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名。目前应该是几乎所有项目建设必备 。今天通过这篇攻略让你快速通关 Nginx 。
图片来自 Pexels
Nginx 简介
Nginx 是一个免费、开源、高性能、轻量级的 HTTP 和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强 。
Nginx 由内核和一系列模块组成,内核提供 Web 服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互 。
Nginx 的各种功能和操作都由模块来实现 。Nginx 的模块从结构上分为:
- 核心模块:HTTP 模块、EVENT 模块和 MAIL 模块 。
- 基础模块:HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite 模块 。
- 第三方模块:HTTP Upstream Request Hash 模块、Notice 模块和 HTTP Access Key 模块及用户自己开发的模块 。
Nginx 的模块默认编译进 Nginx 中,如果需要增加或删除模块,需要重新编译 Nginx,这一点不如 Apache 的动态加载模块方便 。
如果有需要动态加载模块,可以使用由淘宝网发起的 Web 服务器 Tengine,在 Nginx 的基础上增加了很多高级特性,完全兼容 Nginx,已被国内很多网站采用 。
Nginx 有很多扩展版本:
- 开源版 nginx.org
- 商业版 NGINX Plus
- 淘宝网发起的 Web 服务器 Tengine
- 基于 Nginx 和 Lua 的 Web 平台 OpenResty
Web 服务器也称为 WWW(World Wide Web)服务器,主要功能是提供网上信息浏览服务,常常以 B/S(Browser/Server)方式提供服务:
- 应用层使用 HTTP 协议 。
- HTML 文档格式 。
- 浏览器统一资源定位器(URL) 。
Java 程序一般都通过与 Tomcat 配合完成 。作为一名 Java 程序员,肯定要理解下 Nginx 和 Tomcat 的区别了 。
Nginx、Apache 和 Tomcat:
- Nginx:由俄罗斯程序员 Igor Sysoev 所开发的轻量级、高并发 HTTP 服务器 。
- Apache HTTP Server Project:一个 Apache 基金会下的 HTTP 服务项目,和 Nginx 功能类似 。
- Apache Tomcat:是 Apache 基金会下的另外一个项目,是一个 Application Server 。
Apache HTTP Server 和 Nginx 本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过 Shell、PHP、Python 脚本程序来动态生成内容) 。
一个 HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能 。
客户端通过 HTTP Server 访问服务器上存储的资源(HTML 文件、图片文件等等) 。
通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是一个 HTTP Server 始终只是把服务器上的文件如实的通过 HTTP 协议传输给客户端 。
而应用服务器,则是一个应用执行的容器 。它首先需要支持开发语言的运行(对于 Tomcat 来说,就是 Java),保证应用能够在应用服务器上正常运行 。
其次,需要支持应用相关的规范,例如类库、安全方面的特性 。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运行需要的标准类库、Interface 等 。
为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大 。
推荐阅读
- 小编教你360软件管家设置安装在指定盘符文件夹的操作教程
- 怎么解决Win10专业版软件安装好桌面没有图标?
- 装修用的白板怎么安装
- 装修门是怎么装的
- Win7安装软件时提示“此程序被组策略阻止”怎么解决?
- 虚拟机vmware怎么安装Win11系统
- 卫生间装修如何安装马桶 如何安装马桶
- 我来分享无线鼠标驱动安装成功还是无法使用怎么办。
- 平板太阳能的安装方法 怎样安装太阳能板
- 苹果助手一键安装 苹果手机助手苹果版