使用Valet通过代理在子域名部署两个项目遇问题求助
解决Valet子域名代理覆盖API站点的问题
问题原因
Valet的代理规则优先级高于普通link规则,你执行valet proxy app.nuxttodo http://localhost:60539时,生成的Nginx配置可能错误将server_name设为*.nuxttodo.test(匹配所有nuxttodo.test的子域名),导致原本的API子域名也被代理到前端项目。
修复步骤
清理现有配置
- 删除代理规则:
valet unproxy app.nuxttodo - 删除两个站点的link:
valet unlink api.nuxttodo valet unlink app.nuxttodo
- 删除代理规则:
重新配置API站点
- 进入Laravel API项目根目录,执行:
valet link api.nuxttodo
先验证
api.nuxttodo.test能正常打开API项目,再进行下一步。- 进入Laravel API项目根目录,执行:
正确配置前端代理
- 用指定域名的方式添加代理,确保仅匹配
app.nuxttodo.test:valet proxy app --domain nuxttodo.test http://localhost:60539
- 用指定域名的方式添加代理,确保仅匹配
重启Valet生效
valet restart
验证
分别访问api.nuxttodo.test和app.nuxttodo.test,应能正常打开对应项目。若仍有问题,可手动检查Valet的Nginx配置文件(路径:~/.config/valet/Nginx/),找到app.nuxttodo.test配置文件,确认server_name行是:
server_name app.nuxttodo.test;
而非server_name *.nuxttodo.test;,修改后重启Valet即可。
内容的提问来源于stack exchange,提问作者Muhammad Yasir
相关产品推荐
相关产品推荐

