设置:Windows Server 2008 R2,运行 IIS 和 DNS 服务。
我正在此服务器上使用 web2py 开发一个网站。Web2py 有自己的服务器。目前只能使用地址从服务器本身浏览该网站 127.0.0.1:8000/[directory_name]
。我正在尝试让该网站也可用于内联网。
有没有办法设置子域名指向这个 IP + 端口?我想这样设置
app1.domain.com ----> 将打开 127.0.0.1:8000/app1
app2.domain.com ----> 将打开 127.0.0.1:8000/app2
等等?或者如果有其他更好的方法,请告诉我。谢谢!
答案1
如果您在 2008R2 机器上使用 IIS7,则可以使用 URL Rewrite 模块:
http://www.iis.net/downloads/microsoft/url-rewrite
然后,您可以配置域:端口/路径组合,重定向到另一个域:端口/路径组合。
我使用它来实现与 SubSonic 音乐服务器类似的功能。假设我的服务器上的 IIS7 托管 mydomain.net,我想映射http://mydomain.net/music/subsonic/<xxx>
到http://localhost:8080/<xxx>
如果您在 IIS 中设置了子域,则可以使用基于服务器级别的正则表达式的重写规则来捕获请求,例如将 app1.domain.com 映射到将打开 127.0.0.1:8000/app1
答案2
您可以在 hosts 文件中定义域的映射(它将流量从本地计算机引导到本地计算机)。然后,您需要配置 Web2py 以根据请求中使用的不同主机名传递内容。 这是对另一个问题的回答概述您的选择。
为了使网络上的其他主机可以使用此功能,您需要将映射放在网络可用的 DNS 服务器中。
您将无法通过主机文件或 DNS 将应用程序映射到端口 - 这必须在链接中。由于您已经在运行 IIS,因此您无法使用默认端口,除非您向服务器添加另一个 IP 地址,并让 web2py 监听该地址。
Web2py 将处理到达其正在监听的地址/端口的任何请求。然后,您需要配置 web2py 以根据请求中使用的 fqdn(主机标头)提供不同的内容,或者让在 web2py 上运行的 Web 应用程序处理差异。根据您提供的信息,我无法提供更多帮助。