You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS High Sierra下Nginx配置失效、域名解析及端口占用问题求助

解决你的Nginx和域名解析问题

咱们一步一步来搞定这两个核心问题:端口占用导致Nginx启动失败,以及mage.local域名解析失败。

一、先解决Nginx端口占用问题

你看到的bind() to 0.0.0.0:80 failed (48: Address already in use)错误,说明80端口已经被其他进程抢占了——最常见的情况是Mac自带的Apache服务在运行,或者之前的Nginx进程没正常退出。

  1. 定位占用80端口的进程
    打开终端执行以下命令:

    sudo lsof -i :80
    

    输出结果里会显示占用端口的进程名(比如httpd就是Apache)和对应的PID(一串数字)。

  2. 终止占用端口的进程
    如果是Apache服务,直接用专用命令停止:

    sudo apachectl stop
    

    如果是其他进程,用查到的PID强制终止:

    sudo kill -9 <你的PID数字>
    
  3. 验证Nginx配置并重启
    先检查配置文件有没有语法错误:

    sudo nginx -t
    

    如果输出test is successful,就重启Nginx:

    sudo nginx -s reload
    

    要是之前Nginx没启动成功,直接执行sudo nginx启动服务。

二、解决mage.local域名解析失败问题

这里有个极易忽略的拼写错误,还有几个配置细节需要确认:

  1. 修正dnsmasq配置文件名
    你提到的配置文件是/usr/local/etc/dsnmasq.conf,但正确的文件名应该是**dnsmasq.conf**(少了一个字母n)!这个拼写错误会导致dnsmasq完全加载不到你的域名解析规则。

  2. 重启dnsmasq服务
    如果你是用Homebrew安装的dnsmasq,执行以下命令重启服务:

    sudo brew services restart dnsmasq
    
  3. 刷新本地DNS缓存
    Mac系统刷新DNS缓存的命令:

    sudo dscacheutil -flushcache
    sudo killall -HUP mDNSResponder
    
  4. 验证域名解析是否正常
    执行以下命令,检查返回的IP是否为127.0.0.1:

    nslookup mage.local
    

    如果输出的Address字段显示127.0.0.1,说明解析规则已经生效。

三、最后验证访问

现在再执行curl -IL http://mage.local,应该能得到正常的HTTP响应了。如果还是存在问题,可以排查:

  • 确认/Users/nghiepthan/Sites/html/目录确实存在,且里面有test.php或index.html文件
  • 查看Nginx的错误日志(/Users/nghiepthan/Sites/html/nginx.error.log),根据具体错误信息进一步排查

内容的提问来源于stack exchange,提问作者thanhoangxuannghiep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:59:22