【NGINX--13】实用运维提示和结论

1、使用 includes 简化配置

需要清理庞杂的配置文件,将配置按逻辑划分为模块化配置集。

使用 include 指令来引用配置文件、目录或掩码:

http {
    include config.d/compression.conf; 
    include sites-enabled/*.conf
}

include 指令中只包含一个参数,可以是文件的路径或是与许多文件匹配的掩码。该指令在任何上下文中都有效。
详解
使用 include 语句,保持 NGINX 配置清晰简洁。可以对配置进行逻辑分组,以避免配置文件达到数百行。可以创建模块化配置文件,然后将这些文件添加到配置中的多个位置,无需复制配置。以 NGINX 大多数软件安装包中都提供的 fastcgi_param 配置文件为例。如果在单个 NGINX 上管理多台 FastCGI 虚拟服务器,则可以将此配置文件添加到需要这些 FastCGI 参数的任何位置或上下文中,而无需复制此配置。另一个示例是 SSL 配置。如果正在运行需要类似 SSL 配置的多台服务器,只需编写此配置一次,然后将其添加到所需位置即可。通过对配置进行逻辑分组,可确保配置简洁有序。只需编辑单个文件即可更改一组配置文件,无需在大型配置文件中的多个位置更改多组配置块。对于从业人员来说,最好将配置分组到不同文件中并使用 include 语句。

2、调试配置

从 NGINX 服务器收到预料之外的响应。

调试配置,并谨记以下提示:

  • NGINX 在处理请求时查找特定匹配规则。这虽然增加了手动配置的难度,但却是运行 NGINX 的最有效方法。有关 NGINX 如何处理请求的更多信息,请访问“其他参考资料”部分中的文档链接。
  • 可以打开调试日志记录。对于调试日志记录,需确保 NGINX 软件包带有 --withdebug 标记大多数常用软件包都带有此标记,但如果是自行构建的软件包或最简化软件包,则至少要确认一下。确保开启调试后,可将 error_log 指令的日志级别设置为 debug: error_log /var/log/nginx/error.log debug。
  • 可以开启对特定连接的调试。debug_connection 指令在 events 上下文中有效,并将 IP 或 CIDR 范围用作参数。该指令可以被多次声明,以添加多个 IP 地址或CIDR 范围进行调试。这可帮助调试生产问题,并避免因调试所有连接而降低性能。
  • 可以只对特定虚拟服务器进行调试。error_log 指令在主 http、mail、stream、server 和 location 上下文中都有效,可以只在需要的上下文中设置 debug 日志级别。
  • 可以启用内核转储并从中获取回溯。可通过操作系统或 NGINX 配置文件启用内核转储。更多相关信息请参阅“其他参考资料”部分中的管理员指南。
  • 可以开启 rewrite_log 指令:rewrite_log on 记录重写语句的执行过程。

详解
NGINX 平台规模庞大,配有诸多强大功能。但是,这也有可能带来极大不便。调试时,务必要弄清如何通过配置跟踪请求;如果遇到问题,可添加调试日志级别以寻求帮助。调试日志虽繁杂冗长,但可清晰地显示 NGINX 正如何处理请求,以及配置中存在问题的地方。
参考资料
“NGINX 如何处理请求”
《NGINX 调试管理员指南》
NGINX rewrite_log 模块文档

你可能感兴趣的:(NGINX,运维,nginx,java)