Nginx 和 OpenResty

Nginx 和 OpenResty

何大炮关注

0.0972018.09.11 21:15:08字数 889阅读 9,046

Nginx

Nginx 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。
1、处理响应请求很快
2、高并发连接
3、低的内存消耗
4、具有很高的可靠性:
5、高扩展性
6、热部署
master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的功能,可以在 7 × 24 小时不间断服务的前提下,升级 Nginx 的可执行文件。也可以在不停止服务的情况下修改配置文件,更换日志文件等功能。

7、自由的 BSD 许可协议

Nginx 日志主要有两种:access_log(访问日志) 和 error_log(错误日志)。

Nginx的location参数有具体的匹配规则:

  • 首先精确匹配 =
  • 其次前缀匹配 ^~
  • 其次是按文件中顺序的正则匹配
  • 然后匹配不带任何修饰的前缀匹配。
  • 最后是交给 / 通用匹配
  • 当有匹配成功时候,停止匹配,按当前匹配规则处理请求

Nginx 静态文件服务:最重要的就是缓存,利用好了Nginx的缓存,我们就可以提高响应速度,同时在服务器宕机的时候返回缓存中的旧文件而不是500。

正向代理:客户端用到的代理服务器就是正向代理。
反向代理:隔绝服务器和所有客户端,接受所有客户端请求,转发给相应的内部服务器。Nginx就是一个典型的反向代理。

负载均衡:利用多台服务器提供单一服务。提高了服务器的处理能力,同时,当有服务器宕机的时候,可以提供备用服务器,起到很好的容错作用。
负载均衡常用算法: 轮询(默认);ip_hash(共享session);fair(响应时间快就分配);url_hash;least_conn(最少连接负载均衡);hash。

陷阱和常见错误

OpenResty

OpenResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

通过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程。

OpenResty 充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。不仅仅是和 HTTP 客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached 以及 Redis 等众多远方后端之间的网络通信也是非阻塞的。

ngx_openresty 目前有两大应用目标

  • 通用目的的 web 应用服务器。在这个目标下,现有的 web 应用技术都可以算是和 OpenResty 或多或少有些类似,比如 Nodejs, PHP 等等。ngx_openresty 的性能(包括内存使用和 CPU 效率)算是最大的卖点之一。
  • Nginx 的脚本扩展编程,用于构建灵活的 Web 应用网关和 Web 应用防火墙。有些类似的是 NetScaler。其优势在于 Lua 编程带来的巨大灵活性。
发布了293 篇原创文章 · 获赞 27 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/gwdgwd123/article/details/103928524