经过上篇文章的学习,我们已经了解到了 XS 中的默认索引配置是在哪里,也了解到了配置文件如何加载以及服务端的一些简单配置。今天,我们要学习的重点就是剩下的内容,也是非常重要的内容,那就是索引字段的配置定义以及字段设计。
对于一个搜索引擎来说,索引配置是非常重要,并且也是非常核心的内容。在 XS 中,我们的索引配置是通过一个配置文件来实现的。在前两篇文章的测试中,我们使用了一个叫做 demo 的索引配置。当时,我们直接就是写了一个 demo 这个名称,那么这个配置文件具体在哪里呢?
今天还是概念性的内容,但是这些概念却是整个搜索引擎中最重要的概念。可以说,所有的搜索引擎就是实现了类似的概念才能称之为搜索引擎。而且今天的内容其实都是相关联的,所以不要以为标题上有四个名词就感觉好像内容很多一样,其实它们都是联系紧密的,一环套一环的。
啥?还要单独讲一下啥是搜索引擎?不就是百度、Google嘛,这玩意天天用,还轮的到你来说?额,好吧,虽然大家天天都在用,但是我发现,其实很多人对搜索引擎并不是特别了解,更别提搜索引擎开发了。不信?那么咱们就一步一步来看。
这回的新系列,我们将学习到的是一个搜索引擎 迅搜 XunSearch 的使用。这个搜索引擎在 PHP 圈可能还是有一点名气的,而且也是一直在更新的,虽说现在 ElasticSearch 已经是实际上的搜索引擎霸主了,而且还有 Solr 在后的不断追赶,但要说最简单、最实在,而且最容易让我们这些 PHPer 上手的,绝对还是 XunSearch 。
学习了这么久,也该有个结束了,在最后一篇中,我们先来看一下 Nginx 做四层代理并实现负载均衡的模块。这个和 HTTP 模块中的七层代理没啥差别,就简单演示一下。最后,再稍稍总结一下,主要就是讲讲我们还有哪些东西没讲到。毕竟整个 Nginx 体系就是一个应用服务器体系的学习,牵涉到的东西还有很多。那么出于什么原因咱们不再继续了呢?别急,下面会说出原因。
放轻松放轻松,最后两篇文章学习的内容是比较轻松的。首先,我们来看看 Nginx 动静分离的概念,然后再看看怎么为 Nginx 做日志分割。内容都很简单,完全不需要有任何的压力。
最后一个重点模块内容啦,感谢坚持到现在的你和我。总算是向大佬的道路上又前进了一步了。今天的内容主要是服务器组的配置,其实更直白点,就是 Nginx 负载均衡的配置模块。会不会有小伙伴不明白负载均衡是啥?如果是新同学,还不明白的话,要自己查查资料补习一下了哦。
继续我们的 SSL 模块的学习。上回其实我们已经搭建起了一个 HTTPS 服务器了,只用了三个配置,其中一个是 listen 的参数,另外两个是指定密钥文件的地址,一个是 crt 文件,一个是 key 文件。今天我们将学习到的是 SSL 中的错误状态码、变量相关的内容,以及最后会看一下在宝塔中配置 SSL 之后,它生成的配置指令是什么样的。
又是一个重点模块,SSL 模块,其实就是我们常见的 HTTPS 所需要的配置模块。HTTPS 的重要性不用多说了吧,现在所有的 App、小程序 都强制要求是 HTTPS 的,即使是网站开发,百度也明确了对 HTTPS 的收录会更好。也就是说,HTTPS 已经成为了事实上的正式环境协议标准。
这个模块让我想到了 2009 年刚刚工作的时候。最早我是做 .NET 的,而第一家公司其实是从 ASP 向 ASP.NET 转型中,因此,还是有不少的 ASP 做的页面。在那个时候,就用到了 SSI 。
今天的内容主要是讲三个模块,这三个模块分别可以查看当前 Nginx 的运行状态信息,可以修改返回响应的内容,以及最后一个可以通过 Nginx 生成一个对应客户端的唯一 UID 。这几个功能平时用过的同学可能不多,但是也都非常有意思,有兴趣的小伙伴可以尝试尝试哦。
又迎来新的模块了,今天的内容不多,但我们都进行了详细的测试,所以可能看起来会多一点哦。这三个模块之前也从来都没用过,但是通过学习之后发现,貌似还都挺有用。当然,还是要根据具体业务情况来看,如果你的业务中有用到,那么就可以尝试一下哦。
今天的内容又是在 Nginx 的学习中非常重要的一块。可以说,只要你是做 PHP 开发的,那么肯定会接触过今天的内容。为什么这么说呢?因为你只要用了 PHP 框架,不管是 TP 还是 Laravel ,都会需要今天学习到的内容来进行相应的配置,实现去除 index.php 之类的功能。另外,包含在这个模块中的 return、set、if 也是我们之前都已经接触过的,特别是 retrun ,几乎每篇文章都用到了。
完成了代理这个大模块的学习,我们继续其它 Nginx 中 HTTP 相关的模块学习。今天的内容都比较简单,不过最后的来源处理非常有用,可以帮我们解决外链问题。另外两个其实大家了解一下就好。
Nginx 在不同的模块中,会提供一些变量,这个我们之前应该已经看过很多了。特别是 HTTP 核心模块中,提供了非常多的变量可以供我们使用。而在 Proxy 模块中,也提供了几个非常简单的变量,今天就来一起学学。另外,最后还剩一些无法归到大类的其它配置,大家也可以了解一下,其中还是有重点配置的哦,而且是非常常用的,今天的内容绝对不水。
响应头相关的配置也和我们之前在 FastCGI 系列学过的响应头配置是类似的,这一块也比较简单。而另一部分则是 Proxy 模块另一个特有的功能,SSL 相关的配置。不过这一块吧,一是配置比较麻烦,二是平常使用到的也比较少,所以我也是以学习了解的状态来进行的,偷个懒,不会进行相应的配置测试。有兴趣的小伙伴可以自己配一配哦。
缓冲区的内容还是和 FastCGI 是相似的,测试方式也是相同的,这个咱们就不多说了。另外一个 Cookie 相关的配置指令则是 Proxy 模块所特有的,但其实也就是重写或修改后端响应的 Cookie 中的一些信息,一般来说用得也不是特别多,大家还是以了解的心态来看待。
在基本的配置学习之后,其实大部分的业务场景就已经够用了,没错,就那一个 proxy_pass 指令,真的就够了。但是,对于许多更复杂的业务场景来说,Nginx 的代理模块还是提供了更多的功能,做为每个想成为架构师的码农来说,这一部分不说多精通,至少也都得有些了解。今天学习的代理模块缓存与错误处理和 FastCGI 模块非常类似,很多内容我们照搬之前的测试方式就可以了。
来了来了它来了。要说 Nginx 最早最出名的名头是什么?相信不少老码农马上就会想到,最开始,Nginx 的名头就是一款性能最高的 反向代理 服务器。现在其实也是,但是这么说的人越来越少了。也就是说,其实 Nginx 最主要的功能就在于反向代理。如果是编程小白,刚刚从事编程相关工作,没有配置过负载集群,可能对这个概念还是比较陌生的。那么今天咱们就来先说说 代理、反向代理、正向代理 这些概念。
Laravel Swoole 设计模式 算法 数据结构 PHP基础 压缩 MySQLi 缓存 性能 命名空间 信管师 Redis Nginx 迅搜 MQ 消息队列 MySQL PHP 加解密 PDO PHP数据库 时间日期 文件操作 国际化 GD库 图片处理 PHP SPL CURL Composer PHP魔术 PHP框架 ACP 敏捷