《深入理解Nginx:模块开发与架构解析》读书笔记

1.nginx的特点:快、扩展性强、可靠性强、内存低消耗、支持高并发、热部署、开源免费

2.nginx由master进程来管理多个(CPU数)worker进程

3.配置按功能分,有4类:

  1)用于调试、定位问题的配置项

  2)正常运行必备的配置项

  3)优化性能的配置项

  4)事件类配置项

4.web服务器配置

  4.1虚拟主机与请求的分发:

  1)listen:监听端口【server】

  2)server_name:请求中的主机域名【server】

  3)server_names_has_buket_size:每个散列桶的内存大小【server、http、location】

  4)server_names_has_max_size:分配的内存大小,内存越大冲突越小,检索越快【server、http、location】

  5)server_names_in_redirect:决定是否使用是server_name配置的主机名代替host中的头部【server、http、location】

  6)location:匹配uri,如果匹配,用后面的配置来处理请求【server】

  4.2文件路径的定义:

  1)root:定义资源文件目录的相对于请求的路径【server、http、location、if】

  2)alias:定义资源文件目录的相对于请求的路径的别名【location】

  3)index:首页文件【server、http、location】

  4)error_page:错误码重定向页面【server、http、location、if】

  5)recursive_error_page:是否允许递归定义错误页面【server、http、location】

  6)try_files:尝试访问uri,如果都不存在则重定向到最后设置的路径【server、location】

  4.3内容及磁盘资源的分配:请求占用内存、磁盘的相关设置

  4.4网络连接的设置:连接、超时、关闭

  4.5MIME类型设置:类型type与文件后缀的映射

  4.6对客户端请求限制:请求方法、包体最大值、限速

  4.7文件操作优化:IO、缓存

  4.8对客户端请求的特殊处理:HEAD合法性、URI检查、DNS

  4.9ngx_http_core_module模块提供的变量:

5.负载均衡的配置

  5.1.upstream:上游服务器集群【http】  

  5.2.server:上游服务器名字【upstream】

  5.3.ip_hash:根据IP转发的策略

  5.4.记录日志时支持的变量

6.反向代理的配置

  6.1.proxy_pass:反向代理的上行地址。如果转发要带上host头部,需要加上配置:proxy_set_header  Host $host;

  6.2.proxy_method:转发时的方法

  6.3.proxy_hide_header:转发时过滤掉某些字段

  6.4.proxy_pass_header:与上面配置相反

  6.5.proxy_pass_request_body:是否转发body

  6.6.proxy_pass_request_headers:是否转发header

  6.7.proxy_redirect:重定向相关设置

  6.8.proxy_next_upstream:发生错误时,配置另一台服务器处理请求

后面是nginx的高级部分,介绍了如何开发一个nginx模块和了解nginx的实现原理,如果有机会的话,再继续学习:https://www.amazon.cn/dp/B01CHUPLE0/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1536817830&sr=1-1&keywords=nginx

附录

常用命令:

1.校验配置文件: nginx -t

2.启动服务 nginx

3.停止服务:nginx -s quit|stop

4.重启服务:nginx -s reload

5.(日志移走后)重新写入新日志:nginx -s reopen

6.显示命令帮助:nginx -h

原文地址:https://www.cnblogs.com/xujanus/p/9641673.html