如何将所有 *.dev 路由到 vagrant box 上的子文件夹

     2023-02-25     123

关键词:

【中文标题】如何将所有 *.dev 路由到 vagrant box 上的子文件夹【英文标题】:How to route all *.dev to subfolders on vagrant box 【发布时间】:2015-01-31 22:20:21 【问题描述】:

我希望每一个*.dev的Host都会被路由到我的vagrant机器到/var/www/vhosts/*.dev/public,例如我的本地开发环境project1.dev位于/var/www/vhosts/project1.dev/public

所以当我在我的盒子中添加一个新的(子)项目时,我不需要更改我的 config.yaml(通过 puphpet.com 安装的 Vagrant)并重新加载机器。

在我的电脑上,我在/private/etc的hosts文件中添加了以下内容:

192.168.56.101 *.dev

在我的虚拟机上,我将/etc/apache2/sites-enabled 中的10-default_vhosts80.conf 更改为:

# ************************************
# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************

<VirtualHost *:80>
  ServerName default

  ## Vhost docroot
  DocumentRoot "/var/www/default"

  ## Directories, there should at least be a declaration for /var/www/default

  <Directory "/var/www/default">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
  </Directory>

  ## Load additional static includes

  ## Logging
  ErrorLog "/var/log/apache2/default_vhost_80_error.log"
  ServerSignature Off
  CustomLog "/var/log/apache2/default_vhost_80_access.log" combined

  ## Custom fragment
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/default/$1
</VirtualHost>
<VirtualHost *.dev:80>
    ServerName dev
    VirtualDocumentRoot /var/www/vhosts/%0
</VirtualHost>

很遗憾,这不起作用。有任何想法吗?我是这门学科的初学者。

【问题讨论】:

【参考方案1】:

很遗憾,hosts 文件不支持使用通配符。您必须手动定义要重定向的每个主机。

另外,您的主机文件位于/etc/hosts

【讨论】:

我要试试这个来添加通配符支持:code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/…【参考方案2】:

最后,我使用dnsmasq 将所有.localdev 域路由到127.0.0.1。请注意,我使用的是.localdev 而不仅仅是.dev.local,因为这似乎会导致问题(OS X 10.10),因为.dev 是proposed gTLD,而.local 被Apple's Bonjour 使用。

然后我通过创建和启用此站点来配置 Apache:

<VirtualHost *:80>
  ServerAlias localhost *.localdev #wildcard catch all
  VirtualDocumentRoot /hosts/%1/public
  UseCanonicalName Off
  <Directory "hosts">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

(来自:http://brunodbo.ca/blog/2013/04/26/setting-up-wildcard-apache-virtual-host-wildcard-dns)

【讨论】:

【参考方案3】:

我使用proxy auto configuration file。这适用于 Windows、MacOS 和 Linux。简单,flexible,无需其他软件。以下示例将所有 *.dev 流量路由到您的 vagrant box:

function FindProxyForURL(url, host) 
    if (dnsDomainIs(host, ".dev")) 
        return "PROXY 127.0.0.1:8080";
    

    return 'DIRECT';


如果需要,请将127.0.0.1:8080 替换为您的 vagrant box 的 IP 和网络服务器端口。将此文件存储在某处。您可以将其存储在本地,也可以让 Vagrant-box 上的网络服务器托管该文件。

Windows:请参阅here 如何在 Windows 上使用 PAC 文件。

MacOS:请参阅here 如何在 MacOS 上使用 PAC 文件。您可以使用file:///Users/username/path/to/proxy.pac 链接到该文件。

Linux:取决于 linux,但我相信 linux 用户可以通过 Google 了解他们的具体情况。

【讨论】:

如何将 stdout、stderr 重新路由回 /dev/tty

】如何将stdout、stderr重新路由回/dev/tty【英文标题】:Howtoreroutestdout,stderrbackto/dev/tty【发布时间】:2012-02-1803:47:12【问题描述】:我只是ssh-ed到某个远程服务器,发现我试图在bash中运行的所有命令/进程中的stdout和stderr被重定向... 查看详情

无法将 Ngrok 与 Vagrant 连接

】无法将Ngrok与Vagrant连接【英文标题】:Can\'tconnectNgrokwithVagrant【发布时间】:2016-01-1602:58:20【问题描述】:我正在使用“Scotchbox”(scotchbox.io)Vagrant文件,我想将它与Ngrok一起用于为客户演示正在进行的工作。我不确定如何使... 查看详情

如何将文件从 Vagrant 机器复制到 localhost

】如何将文件从Vagrant机器复制到localhost【英文标题】:HowtocopyfilefromaVagrantmachinetolocalhost【发布时间】:2015-12-0108:02:13【问题描述】:我想将本地文件从Vagrant机器复制到我的localhost,但我收到一条错误消息:ssh:连接到主机127.0.0.... 查看详情

如何将自己的公钥添加到 Vagrant VM?

】如何将自己的公钥添加到VagrantVM?【英文标题】:HowdoIaddmyownpublickeytoVagrantVM?【发布时间】:2015-07-1612:20:59【问题描述】:我在向VagrantVM添加ssh密钥时遇到问题。基本上我在这里的设置工作正常。创建虚拟机后,我可以通过vagr... 查看详情

如何将 NodeJS 调试器通过隧道传送到 Vagrant 框?

】如何将NodeJS调试器通过隧道传送到Vagrant框?【英文标题】:HowdoItunneltheNodeJSdebuggerthroughtoaVagrantbox?【发布时间】:2014-06-3020:48:27【问题描述】:我正在尝试设置WebStormNodeJS调试器以连接到托管在Vagrant盒子上的NodeJS项目。我遇到... 查看详情

AWS ALB - 如何将现有会话路由到服务器 A,并将新会话路由到服务器 B?

】AWSALB-如何将现有会话路由到服务器A,并将新会话路由到服务器B?【英文标题】:AWSALB-howtorouteexistingsessionstoServerA,andnewsessionstoServerB?【发布时间】:2021-05-2701:10:40【问题描述】:我很难理解这个场景的命名法:假设我在ALB目... 查看详情

如何将显示从 vagrant Linux box 导出到 MacOS 主机?

】如何将显示从vagrantLinuxbox导出到MacOS主机?【英文标题】:HowtoexportdisplayfromanvagrantLinuxboxtoMacOShost?【发布时间】:2019-11-1117:04:45【问题描述】:我有一个安装了Catalina的MacOS。在这个MACOs主机上,我运行了一个VirtualBoxcentoslinuxbox... 查看详情

如何在 Laravel 4 中将一个路由重定向到 HTTPS,将所有其他路由重定向到 HTTP?

】如何在Laravel4中将一个路由重定向到HTTPS,将所有其他路由重定向到HTTP?【英文标题】:HowtoredirectoneroutetoHTTPSandalltheotherstoHTTPinLaravel4?【发布时间】:2015-06-1608:17:03【问题描述】:我想将我网站上的结帐页面提供为“HTTPS”,... 查看详情

如何将所有路由重定向到nest.js中的index.html(Angular)?

】如何将所有路由重定向到nest.js中的index.html(Angular)?【英文标题】:Howtoredirectallroutestoindex.html(Angular)innest.js?【发布时间】:2019-07-1704:58:54【问题描述】:我正在制作Angular+NestJS应用程序,我想为所有路由发送index.html文件。m... 查看详情

所有 Laravel 路由都暴露了。如果可能,如何将其移动到 app.js 或缩小

】所有Laravel路由都暴露了。如果可能,如何将其移动到app.js或缩小【英文标题】:AllLaravelroutesexposed.Howtomoveittoapp.jsorminifyifpossible【发布时间】:2021-05-1608:14:34【问题描述】:我在我的Laravel、Vue.js和Inertiajs项目中使用Ziggy。在查... 查看详情

chrome无法解析vagrant/virtualbox主机?(代码片段)

由于.dev现在是gTLD并且迫使重定向到Chrome中的https,我使用PuPHPet建立了一个新的开发环境,其域名为awesome.localhost而不是之前的默认awesome.dev。Chrome根本无法解析它并返回ERR_EMPTY_RESPONSE消息,并且控制台中没有错误或信息。我可以... 查看详情

git分支怎么切换到远端分支

...地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。比如我要创建一个名为dev1的新分支:此时,再执行gitbranch查看当前本地所有分... 查看详情

将所有路由错误重定向到应用程序的根 URL

...问题描述】:例如输入:localhost:3000/absurd-non-existing-route如何在Rails中获取指向应用程序主页的无效路由?【问题讨论】:【参考方案1】:这是我试图找到一个通用的包罗万象的路由异常解决方案的 查看详情

如何将核心数据类路由到 RestKit 中的多个资源路径?

】如何将核心数据类路由到RestKit中的多个资源路径?【英文标题】:HowcanIrouteaCoreDataclasstomultipleresourcepathsInRestKit?【发布时间】:2012-05-0117:01:30【问题描述】:我有一个Web服务,它需要两部分查询才能完全获取我需要的信息。我... 查看详情

如何将所有列表元素添加到另一个列表中[重复]

】如何将所有列表元素添加到另一个列表中[重复]【英文标题】:Howtoprependalllistelementsintoanotherlist[duplicate]【发布时间】:2012-05-2013:29:41【问题描述】:可能重复:Mergetwolistsinpython?如何将列表元素添加到另一个列表中?A=[\'1\',\'2\... 查看详情

Flask URL Route:将所有其他 URL 路由到某个函数

...进行评估,先到先得。Flask中是不是也一样?在Flask中,如何编写一个url匹配模式来处理所 查看详情

如何将状态传递给路由器组件?

】如何将状态传递给路由器组件?【英文标题】:HowtopassstateuptoRoutercomponent?【发布时间】:2021-01-0319:31:43【问题描述】:我对React很陌生,我正在尝试创建一个简单的游戏。App组件中的所有数据都处于状态。我想使用路由器将页... 查看详情

.htaccess 将所有路由重定向到 .html

】.htaccess将所有路由重定向到.html【英文标题】:.htaccessRedirectallroutesto.html【发布时间】:2021-11-0615:35:14【问题描述】:我想将所有路由重定向到route_name.html文件。例如,https://example.com/blah到https://example.com/blah.html我还想将所有... 查看详情