2024-11-27 08:17:36
Nginx 是一款开源、高性能、高可靠的 Web 和反向代理服务器。它支持热部署,无需频繁重启即可确保 7 * 24 小时不间断运行,甚至运行数月也不需重启。Nginx 可以在不中断服务的情况下进行软件版本的热更新,性能卓越,内存占用少,并发能力强,最高支持达到 5w 个并发连接数。更关键的是,Nginx 是免费的,并且允许商业使用,配置简单。
Nginx 的核心优势在于其底层服务器端资源的高效处理,如静态资源处理、转发和反向代理、负载均衡等。虽然 Node.js 在理念上与 Nginx 相似,具有 HTTP 服务器、事件驱动、异步非阻塞等特点,且许多功能可以通过 Node.js 实现,但 Nginx 和 Node.js 分别擅长不同的领域。Nginx 专注于底层服务器端的资源处理,而 Node.js 更擅长上层具体业务逻辑的处理。两者结合使用,可形成强大的服务架构。
Nginx 的典型配置可以通过以下命令执行:
使用一张清晰的层级结构图来展示配置文件的结构。
在 nginx.conf 文件中,主段落中的核心参数包括:
指定运行 Nginx 的 worker 子进程的属主和属组,可不指定组。
指定运行 Nginx master 主进程的 pid 文件存放路径。
设定 worker 子进程可以打开的最大文件句柄数。
设定 worker 子进程异常终止后的 core 文件,用于问题分析。
设定 Nginx 启动的 worker 子进程数量。
将每个 worker 子进程与特定 CPU 物理核心绑定,以优化性能,减少进程切换。
指定 worker 子进程的 nice 值,调整 Nginx 的运行优先级,通常设定为负值。
设定 worker 子进程优雅退出的超时时间。
调整 worker 子进程内部使用的计时器精度,以优化系统性能。
指定 Nginx 的运行方式,是前台调试还是后台生产。
在事件段落中,核心参数包括:
使用何种事件驱动模型,可选值为:select、poll、kqueue、epoll、/dev/poll、eventport。
设定 worker 子进程能够处理的最大并发连接数。
打开负载均衡互斥锁。
指定虚拟主机域名。
域名匹配规则,包含精确匹配、左侧通配符匹配、右侧通配符匹配、正则表达式匹配。
综上所述,Nginx 以其强大的性能和灵活性,成为 Web 服务器和反向代理服务器的首选,其配置简单、适用场景广泛,是开发者不可或缺的工具。