Nginx 在 MacOS 上的自动启动设置
在 MacOS 上通过 brew 安装的 nginx 默认安装在
/usr/local/Cellar/nginx
,通过 brew 安装的时候自动生成了
homebrew.mxcl.nginx.plist
这个文件
将该文件拷贝到
/Library/LaunchDaemons
或者在该文件夹建立
homebrew.mxcl.nginx.plist
这个文件的软连接(MacOS 的访达右键菜单里称为“替身”)
该文件是其实是 XML 文本,其内容是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<key>Label</key>
<string>homebrew.mxcl.nginx</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nginx</string>
<string>-g</string>
<string>daemon off;</string>
</array>
<key>WorkingDirectory</key>
<string>/usr/local</string>
</dict>
</plist>
然后在终端执行命令行
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.nginx.plist
执行上述命令可能会被提示没有权限,将
/Library/LaunchDaemons/homebrew.mxcl.nginx.plist
这个文件的拥有者变更为 root 即可。
sudo chown root homebrew.mxcl.nginx.plist
之后重启 MacOs 电脑后,Nginx 就会自动启动并运行了
对于在 Nginx 内配置了反向代理的虚拟主机,可能由于反向代理失败而导致 nginx 自动启动失败,尽管此时使用命令
查看到的服务已经成功启动,但是实际上 80 端口的
http://localhost/
仍然是无法访问的。
只有在登录后重启该服务才可行
sudo brew services restart nginx