首页 > 解决方案 > 如何使用 apache 代理通配符本地虚拟主机子域

问题描述

所以我在本地开发了 Node.js 应用程序。我在本地制作了 apache 虚拟主机来测试子域功能。假设域是bloggin.fun这样的,每个用户都有自己的子域。alexis.bloggin.fun等我如何使用通配符子域然后将其代理传递给所需的 URL。

我也从 Stack Overflow 遵循的当前设置给了我 chrome not found 错误。未重定向到localhost:4040/auth

        <VirtualHost *:80>
            ServerName bloggin.fun
            ServerAlias hplus.onlocal
            ProxyPass / http://localhost:4040/
            ProxyPassReverse / http://localhost:4040/
        </VirtualHost>


        <VirtualHost *:80>
            ServerAlias *.bloggin.fun
            ProxyPass / http://localhost:4040/blog
            ProxyPassReverse / http://localhost:4040/blog
        </VirtualHost>

/etc/hosts的看起来像这样

127.0.0.1 bloggin.fun

我在这里做错了什么?如何使用 apache 代理传递子域通配符?所以当我访问时alexis.bloggin.fun会被代理到'http:localhost:4040/auth'

标签: node.jsapache

解决方案


问题是它/etc/hosts是逐字评估的,并且没有发生递归 - 这与 DNS 完全不同,在 DNS 中你有递归解析器。

要测试子域,您还需要指定它们的分辨率:

127.0.0.1 bloggin.fun alexis.bloggin.fun tom.bloggin.fun freddie.bloggin.fun

推荐阅读