我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。
Nginx 处理 HTTP 请求时,会将其拆分为 11 个有序阶段,每个阶段负责不同的处理逻辑。理解这些阶段对配置优化、调试和自定义模块开发至关重要。
对于大多数人其实都用不到这里的知识,我为什么会接触到呢,是因为很久以前遇到一个问题就是用户发起了请求,但是不知道什么原因,Nginx未记录日志。然后到处查资料,发现Nginx日志是最后一步,他的请求可能在前面任何一个地方(甚至网络问题,请求未过来)出现问题。
了解学习这些知识,可能没机会用到,但是他能加强你对Nginx的理解。技术的进步不就在这样的一次次看似没用的学习中吗。
set_real_ip_from)。ngx_http_realip_moduleserver 块内执行 URL 重写。rewrite(在 server 上下文中)。ngx_http_rewrite_modulelocation 块(不可干预)。location,无用户配置。location 内再次重写 URL。rewrite(在 location 中)。ngx_http_rewrite_modulelimit_conn)、请求频率限制(limit_req)。ngx_http_limit_conn_module, ngx_http_limit_req_moduleauth_basic)、IP 黑白名单(allow/deny)。ngx_http_access_module, ngx_http_auth_basic_moduleACCESS 阶段的结果(如拒绝请求时返回 403)。try_files 检查静态文件是否存在。ngx_http_try_files_moduleproxy_pass)、返回静态文件(root)、执行 FastCGI。ngx_http_proxy_module, ngx_http_static_moduleaccess_log。ngx_http_log_module