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

Laravel Sail(Docker)下无法访问多个.test域名的问题排查

Laravel Sail 自定义域名无法访问问题解决

问题现象

用Laravel+Sail(Docker)部署两个本地应用,第一个能通过http://vantagemetalmap.test、localhost:80及Vite页面正常访问;但第二个应用只能通过localhost:8081/8082端口访问,http://thevillagex.test无法打开,Vite服务器页面能在localhost:5175正常显示。

核心问题

  1. Hosts文件配置的域名与实际访问域名不匹配:Hosts里写的是thevillage.x,但要访问的是thevillagex.test
  2. 自定义域名解析到127.0.0.1后,没有对应到正确的容器端口转发规则

解决步骤

1. 修正Hosts文件

打开/etc/hosts,把错误的域名替换成正确的:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

# Docker Applications
127.0.0.1 vantagemetalmap.test
127.0.0.1 thevillagex.test  # 替换原来的thevillage.x

修改后刷新MacOS DNS缓存:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

2. 确认Docker端口映射

检查第二个项目的docker-compose.yml,确保端口映射和.env配置一致:
.env里的APP_PORT=8081对应docker-compose.yml中的:

ports:
    - '${APP_PORT:-8081}:80'  # 宿主机8081 → 容器80
    - '${VITE_PORT:-5175}:${VITE_PORT:-5173}'

如果配置没问题,跳过此步骤;如果不一致,修正后保存。

3. 实现无端口访问(可选)

如果不想带端口访问thevillagex.test,需要用Nginx做反向代理,把域名请求转发到8081端口:

  1. 创建Nginx配置文件(以brew安装的Nginx为例):/usr/local/etc/nginx/servers/thevillagex.test.conf
server {
    listen 80;
    server_name thevillagex.test;

    location / {
        proxy_pass http://localhost:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. 重启Nginx:
brew services restart nginx

4. 调整Vite热更新配置

修改vite.config.js,确保HMR配置和自定义域名匹配:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
  server: {
    host: '0.0.0.0',
    port: 5175,
    hmr: {
      host: 'thevillagex.test',
      port: 5175,
      protocol: 'ws'
    },
  },
  plugins: [
    laravel({
      input: ['resources/css/app.css', 'resources/js/app.js'],
      refresh: true,
    }),
  ],
});

重启Vite服务:

sail npm run dev

5. 重启Docker容器

确保所有配置生效,重启第二个项目的容器:

sail down
sail up -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:20:07