Nginx在MacOS上的自动启动设置
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">
<dict>
<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 自动启动失败,尽管此时使用命令
sudo brew services list
查看到的服务已经成功启动,但是实际上 80 端口的http://localhost/仍然是无法访问的。
只有在登录后重启该服务才可行
sudo brew services restart nginx