您需要测试您正在开发的网站,但只有您的 Mac 可以使用吗? 您不需要构建单独的服务器或虚拟机来测试您的网站。 一个快速的选择是在 Mac 上安装 NGINX,然后您就可以在您的计算机上运行一个 Web 服务器了。
跟着我学习如何在 Mac 上安装和设置 NGINX。 您将学习几种不同的安装 NGINX 的方式,因此您可以选择适合您的方法。 您还将学习一些基本的配置项,以帮助您开始测试。
先决条件
本教程将进行一次实际演示。 如果您想跟着做,请确保您具备以下条件:
- 任何一个最新版本的 macOS。 截至本文撰写时,仍在支持的 macOS 版本有Catalina、Big Sur和Monterey。 本教程使用 macOS Big Sur。
- 你的计算机必须安装Xcode命令行工具才能从源代码安装NGINX,或者安装Homebrew并使用公式安装NGINX包。
在Mac上安装NGINX
有两种方法可以在Mac上安装NGINX – 通过编译源代码或使用软件包管理器。但其中一种安装方法并不比另一种更好。你选择的方法将取决于你的需求。
在接下来的几节中,你将学习如何执行两种NGINX安装方法。
方法1:编译并从源代码安装
从源代码编译和安装NGINX可以灵活地包含模块或安全补丁到你的NGINX安装中。例如,你可以编译NGINX以包含实时消息传递协议(RTMP)模块,如果你设置了一个流媒体服务器。
自定义性需要更多步骤,并包括手动安装依赖项。按照以下步骤在Mac上从源代码安装NGINX。
1. 在您的Mac上打开终端。
2. 运行以下命令在您的主文件夹下创建一个工作目录。此目录将包含您安装NGINX所需的所有源文件。
“`
3. 接下来,运行以下命令下载(使用curl
)并提取(使用tar
)最新的Perl Compatible Regular Expressions (PCRE)。NGINX的Core和Rewrite模块需要PCRE。截至本文撰写时,最新的PCRE版本是8.45
。
“`
4. 运行以下每个命令下载(使用curl
)OpenSSL源代码以添加SSL支持。此添加是自定义NGINX构建的一个示例。截至本文撰写时,最新的OpenSSL版本是1.1.1m
。
5. 下载完需求后,运行以下命令来下载(curl
)并解压(tar
)NGINX源码。撰写时的最新稳定版本为1.20.2
。
此时,您应该总共有三个新目录,如下所示。

6. 现在,运行以下命令来编译(make
)和install
NGINX。
7. 接下来,执行以下命令将NGNIX路径添加到系统$PATH
中,通过将完整路径/usr/local/nginx
追加到/etc/paths
。完成此步骤后,您可以在不指定完整路径的情况下运行nginx
命令。
8. 通过按下CMD+Q
退出终端,并打开一个新的终端会话来应用新的$PATHS
。
9. 运行下面的nginx
命令启动NGINX,因为NGINX服务器在安装后不会自动启动。
10. 最后,确认NGINX正在运行。打开一个网页浏览器窗口,并输入地址HTTP://localhost。您应该看到类似下面的默认NGINX欢迎消息页面。
从源代码安装NGINX会设置默认的监听端口为80。

因为您是以root身份从源代码在Mac上安装NGINX的,所以今后发出的每个
nginx
命令都需要加上sudo
前缀。
方法2:使用Homebrew安装NGINX
使用Homebrew安装NGINX更加方便,而且错误少。该方法会自动安装依赖项。如果您不需要自定义NGINX安装,则此方法是最快的选择,只需一个命令即可安装!
要在Mac上使用Homebrew安装NGINX,请按照以下步骤进行。
1. 打开一个新的终端会话。
2. 运行下面的brew
命令来安装NGINX。
您能以Homebrew的root身份安装NGINX吗?- 不行(官方不支持)。brew安装命令拒绝以sudo前缀运行。如果您尝试,将会收到下面的错误消息。
“错误”或:以 root 权限运行 Homebrew 非常危险,且不再受支持。由于 Homebrew 在安装时不降低权限,您将为所有构建脚本提供完全访问权限。”
3. 安装完成后,请调用以下命令启动 NGINX。此命令将 NGINX 作为后台守护进程运行。
默认情况下,Homebrew 将 NGINX 安装在 /usr/local/Cellar/nginx/<version>,并在 /usr/local/opt/ 创建符号链接。nginx 二进制文件在 /usr/local/bin 中有一个符号链接,并且此文件夹已包含在 $PATH 中。
要在不使用后台服务的情况下运行 NGINX,请改为运行以下命令。此命令发出全局指令,指示不将 nginx 作为守护进程运行。
nginx -g “daemon off;”
您可以通过在终端上按下 CTRL+C 来停止 NGINX。
4. 最后,调用以下 curl
命令来确认 NGINX 是否已经运行。
通过 Homebrew 安装 NGINX 将设置默认监听端口为 8080。此默认端口分配确保您可以无需 sudo 运行 nginx。
如下所示,curl 命令已下载默认的 NGINX 网页,这表明服务器正在运行。

设置 NGINX 进行测试
到目前为止,您已安装了 NGINX,但它仍在使用默认设置运行。在开始测试您的网站之前,您可能需要考虑一些基本更改。
你想让NGINX随着计算机启动时自动启动吗?在进行网站测试时,您将存储文件的位置是哪里?您应该保留默认的监听端口分配吗?
这些是安装NGINX后需要配置的一些项目,您将在以下部分学习如何设置。
接下来的部分演示了Homebrew安装的NGINX配置文件的步骤,除非说明明确表示。
自定义服务器监听端口
根据安装方法,默认的监听端口可能是80或8080。端口8080通常适用于测试和开发。但在某些情况下,您可能仍希望更改端口号,例如与其他服务冲突,或者只是感觉需要更改。
无论您的原因是什么,请按照以下步骤更改NGINX默认的监听端口。
1. 首先,运行下面的命令发送停止信号(-s stop
)以确保NGNIX未运行。nginx -s stop
2. 接下来,运行下面的nginx
命令查找NGINX配置文件路径。
下面的结果显示配置文件位于/usr/local/etc/nginx/nginx.conf。

3. 在您喜欢的文本编辑器中打开配置文件,例如下面的示例中的nano
。
4. 现在,定位 server {}
块内的 listen
行。如下所示,监听端口的值为 8080
。

5. 将 listen
端口号更改为另一个唯一的端口号值,例如在此示例中为 9000
。保存更改并退出文件。

6. 现在,重新运行以下命令以再次启动 NGINX。
7. 最后,打开一个新的浏览器窗口并导航到 HTTP://localhost:9000。如下所示,NGINX 现在应在端口 9000 上提供网站服务。

指向您的开发网站目录
默认情况下,Mac 上 NGINX 的安装将网站目录从 /usr/share/nginx/html(源安装)或 /usr/local/Cellar/nginx/<version>/html(Homebrew 安装)提供。
但是,如果您的网站文件在其他位置,例如在另一个驱动器上怎么办?不用担心。按照以下步骤将 NGINX 指向您的开发网站目录。
1. 首先,运行以下命令停止 NGINX 并在文本编辑器中打开配置文件,就像在“自定义服务器监听端口”部分(步骤一至步骤三)中所做的那样。
2. 在文本编辑器中,搜索 server {}
块内的 root html;
行。

3. 编辑root
值并将其更改为您的自定义文件夹。在这个例子中,Web目录位于/Volume/DevData/testweb
。保存更改并退出编辑器。
在这个例子中,测试网站是一个名为Dimensions的静态网站,从HTML5 Up下载而来。这个示例网站可以免费下载和使用,受知识共享署名3.0许可的约束。

4. 现在,再次启动NGINX服务器。
5. 最后,使用您的网络浏览器浏览地址HTTP://localhost:9000。NGINX现在正在从您的自定义Web目录中提供您的测试网站,就像下面的屏幕截图一样。

为基于源代码的安装启用NGINX自动启动
无论您选择的安装方法如何,NGINX默认情况下都不会自动启动。在开发或测试中,NGINX自动启动可能不是必需的。但如果需要,您可以使用launchd
进程配置NGINX在启动时运行。
系统: 你可以启用 NGINX 自启动,无论是基于源码安装还是基于 Homebrew 安装。但在这个演示中,我们从源码安装开始。
要使源码安装的 NGINX 自启动,请按照以下步骤操作。
1. 运行下面的 touch
命令创建一个新的 属性列表 (PLIST) 文件用于 NGINX。
/Library/LaunchDaemons 位置存储全局守护程序,代表 root 或指定用户运行。文件名可以是任何你喜欢的,但如果文件名包含你正在创建的守护程序的名称会更有帮助。
2. 现在,打开用于编辑的 PLIST 文件。
3. 复制下面的代码并粘贴到文本编辑器中。保存文件并退出编辑器。
简而言之,下面的代码定义了一个名为 ata.nginx 的守护程序。要运行的程序是 /usr/local/nginx/sbin/nginx,RunAtLoad 值表示程序将在计算机启动时运行。
4. 最后,运行下面的 launchctl
命令以 load
守护程序。此命令会立即启动 NGINX。从这一点开始,每次计算机重新启动后,NGINX 将自动启动。
假设您改变主意,更喜欢禁用NGINX的自动启动,请运行以下命令。此命令将停止并禁用NGINX守护程序的自动启动。
启用基于Homebrew的安装的NGINX自动启动
与基于源代码的安装不同,基于Homebrew的NGINX安装只需运行一个命令即可启用或禁用NGINX的自动启动行为。这难道不方便吗?
运行以下命令以启用NGINX的自动启动。start
命令立即启动NGINX并注册它以在启动时启动。
运行该命令后,您将获得与下图类似的输出。

要禁用NGINX的自动启动状态,请运行以下命令。如您所见,更改命令的唯一部分是从start
更改为stop
。该命令还会立即优雅地退出NGINX服务器。
结论
就是这样!在Mac上设置NGINX是一个确保在短时间内运行Web服务器进行测试的方法。您可以根据设置要求选择安装选项,并通过纯文本配置文件快速自定义其设置 – 不需要特殊工具。
NGINX不限制测试和运行仅限于单个网站。您可以同时运行多个开发域和网站而互不干扰。或者,如果您感到有冒险精神,也可以在Mac中运行NGINX在Docker中!