安装ssl证书步骤 ssl加速功能


安装ssl证书步骤 ssl加速功能


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 的模块默认编译进 Nginx 中,如果需要增加或删除模块,需要重新编译 Nginx,这一点不如 Apache 的动态加载模块方便 。
如果有需要动态加载模块,可以使用由淘宝网发起的 Web 服务器 Tengine,在 Nginx 的基础上增加了很多高级特性,完全兼容 Nginx,已被国内很多网站采用 。
Nginx 有很多扩展版本:
  • 开源版 nginx.org
  • 商业版 NGINX Plus
  • 淘宝网发起的 Web 服务器 Tengine
  • 基于 Nginx 和 Lua 的 Web 平台 OpenResty
Nginx 作为 Web 服务器
Web 服务器也称为 WWW(World Wide Web)服务器,主要功能是提供网上信息浏览服务,常常以 B/S(Browser/Server)方式提供服务:
  • 应用层使用 HTTP 协议 。
  • HTML 文档格式 。
  • 浏览器统一资源定位器(URL) 。
Nginx 可以作为静态页面的 Web 服务器,同时还支持 CGI 协议的动态语言,比如 Perl、PHP 等,但是不支持 Java 。
Java 程序一般都通过与 Tomcat 配合完成 。作为一名 Java 程序员,肯定要理解下 Nginx 和 Tomcat 的区别了 。
Nginx、Apache 和 Tomcat:
  • Nginx:由俄罗斯程序员 Igor Sysoev 所开发的轻量级、高并发 HTTP 服务器 。
  • Apache HTTP Server Project:一个 Apache 基金会下的 HTTP 服务项目,和 Nginx 功能类似 。
  • Apache Tomcat:是 Apache 基金会下的另外一个项目,是一个 Application Server 。
更准确的说是一个 Servlet 应用容器,与 Apache HTTP Server 和 Nginx 相比,Tomcat 能够动态的生成资源并返回到客户端 。
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 那么强大 。

推荐阅读