17.2 Nginx Web 服务器

在高并发场景下,Web 服务器的性能与资源利用率成为系统架构设计的关键考量因素,直接影响着服务的可扩展性和响应性能。

Nginx(发音为“engine X”)是一个采用事件驱动异步架构的高性能 Web 服务器和反向代理服务器,其设计理念聚焦于高并发连接处理能力和低资源消耗,通过单进程多线程的工作模式实现了卓越的性能表现。

Nginx 以其事件驱动的异步架构和低内存占用特性,在大规模 Web 服务部署中得到广泛应用,其设计理念特别适合处理数以万计的并发连接。本章将介绍在 FreeBSD 平台上部署和配置 Nginx Web 服务器的完整流程。

安装 Nginx

在 FreeBSD 上可以通过 pkg 或 Ports 两种方式安装 Nginx。

使用 pkg 包管理器安装 Nginx 是最快捷的方式,能够自动处理依赖关系,执行以下命令即可完成安装:

# pkg install nginx

使用 Ports 方式安装 Nginx,这种方式提供了更大的配置灵活性,允许用户在编译前进行定制化设置,需要先进入对应的 Ports 目录,然后执行编译安装命令:

# cd /usr/ports/www/nginx/ 
# make install clean

查找相关的软件包

除了主程序外,系统还提供了多个与 Nginx 相关的软件包,可以通过以下方式进行检索,这些软件包涵盖了各种模块和扩展功能。

使用 pkg 命令可以快速检索与 Nginx 相关的软件包,这是一种高效的包管理方式:

$ pkg search -o nginx

在 Ports 目录中也可以查找与 Nginx 相关的软件包,这种方式适合需要查看源码的场景:

$ ls /usr/ports/www/ | grep nginx

守护进程

为了确保 Nginx 在系统启动时自动运行,保证服务的连续性和可靠性,需要先将其配置为开机自启服务,然后再手动启动服务进行测试。

设置 Nginx 服务在系统启动时自动启动:

启动 Nginx 服务,在启动前系统会自动进行配置文件的语法检查:

可以通过以下命令查看 Nginx 正在监听的 IPv4 网络连接及端口,这是验证服务运行状态的有效方法:

浏览网页

确认 Nginx 服务正常运行后,可以通过浏览器访问来验证 Web 服务器是否工作正常,这是部署过程中的重要验证步骤。

在本机浏览器中打开 localhost,或使用服务器 IP 地址访问,例如 http://192.168.179.150/

NGINX FreeBSD

配置文件

Nginx 的功能强大且配置灵活,其配置采用模块化的结构设计,详细的配置方法请参阅官方文档。本文仅简要说明在 FreeBSD 中如何启动 Nginx 及其配置文件位置和使用方法。

有关配置教程,请参阅 官方文档arrow-up-right 备份arrow-up-right,官方文档提供了最权威和完整的配置说明。

在 FreeBSD 中,Nginx 的配置文件位于 /usr/local/etc/nginx/ 目录下,主要配置文件为 /usr/local/etc/nginx/nginx.conf,该文件采用层次化的结构组织。

目录结构:

默认配置中,Nginx 的站点根目录为 /usr/local/www/nginx/。如需更改站点根目录,请在 /usr/local/etc/nginx/nginx.conf 中将

修改为你希望的目录路径,例如 root /path/to/new/webroot;,配置修改后需要重启服务才能生效。

示例配置文件(Nginx + Typecho 伪静态 + SSL)

为了帮助读者更好地理解 Nginx 的配置,下面提供一个完整的示例配置文件,包含 Nginx、Typecho 伪静态规则以及 SSL 配置,这个示例展示了 Nginx 在实际生产环境中的典型应用场景。

课后习题

  1. 为 FreeBSD Port www/nginx 新增目前缺失的 make 选项。

  2. 在 FreeBSD 中,基于 www/nginx 配置 HTTPS 支持,实现自动签名。

  3. 在 FreeBSD 中,基于 www/nginx 部署一个论坛(如使用 Discuz!)。

最后更新于