mac 系统升级后,nginx 不能正常工作的解决方案
发布于 作者:苏南大叔 来源:程序如此灵动~
苏南大叔的mac最近自动升级成了macos mojave,然后发现nginx不能正常工作了。经过了排查发现,是系统升级后,apache的配置文件被重新覆盖,导致80端口不能被nginx占用到。这是一个冷笑话...

本文测试环境:mac10.14,nginx@1.15.1。
现象描述
经过检测,nginx的配置文件无误,但是nginx -s reload却报错。错误如下:

访问本机80端口,出现的是apache的界面,而不是nginx的界面,下面的是苏南大叔提供的对比图。

解决方案
解决方案也很简单,就是修改apache的配置文件httpd.conf,路径是:/etc/apache2/httpd.conf。找到大概第56行,把80字样改成8080即可。当然,8080也可以换成你喜欢的其他端口,只要不是80即可。
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8080
</IfDefine>解除了apache对80端口的占用,重启系统后,nginx就可以正常接管80了。

您可能需要这条命令:
sudo apachectl restart
brew services restart nginx相关文章
事实上,本文能够配置成功的关键因素还有:在系统升级前,nginx是能够正常使用80端口的。那么读者朋友可能还需要的经验文章如下:
《mac系统nginx和apache如何共存?》
总结
mac系统下,nginx如果想要占用80端口,还是真心困难重重的。大家加油!