我很难让子域名在本地工作。我有Docker为端口8080提供服务,我可以看到Laravel欢迎屏幕。然后我有一个简单的路由设置:
Route::domain('{name}.localhost:8087')->group(function () {
return 'Hello World';acrylic dns
});
我正在使用Laravel的基本服务器,即php artisan serve --host=0.0.0.0 --port=8087
当我尝试查看页面时,没有任何反应。它只是进入欢迎屏幕。我甚至尝试将'test.localhost'添加到/ etc / hosts文件中。情侣问题:
1)你能在主机上拥有这样的端口吗(在Laravel路线中)?
2)我似乎有点类似的帖子,解决方案是使用丙烯酸dns(在Windows上)。我正在使用Mac。这是我需要一个真正的DNS服务器吗?
3)我打算使用nginx,我需要一个“更强大”的网络服务器来实现这个目标吗?
使用基本的Laravel服务器,我尝试在路由中使用和不使用端口进行硬编码test.localhost。我确定我在搞什么,只是不确定在哪里。我在Mac上,我正在运行Laravel 5.6。提前谢谢!
答案 0 :(得分:1)
1)不,Web服务器配置将侦听端口。
// nginx
server {
listen 8080;
...
}
2)您在/etc/hosts
文件中添加子域并创建单独的nginx配置:
// /etc/hosts
subdomain1.foo.localhost 127.0.0.1
subdomain2.foo.localhost 127.0.0.1
subdomain3.foo.localhost 127.0.0.1
// nginx subdomain1.foo.localhost.conf
server {
listen 8080;
server_name subdomain1.foo.localhost;
...
}
// nginx subdomain2.foo.localhost.conf
server {
# set different port if needed
# listen 8082
listen 8080;
server_name subdomain2.foo.localhost;
...
}
// nginx subdomain3.foo.localhost.conf
server {
# set different port if needed
# listen 8083
listen 8080;
server_name subdomain3.foo.localhost;
...
}
3)Nginx是一个生产就绪的Web服务器,您可能需要负载均衡器和Web服务器的多个实例进行扩展,但nginx将绰绰有余。