【问题标题】:How to map a DNS with an IP address?如何用 IP 地址映射 DNS?
【发布时间】:2014-08-21 19:04:50
【问题描述】:

我不知道我是否正确地问了这个问题,但这是我的情况:

我有一个使用商业主机的网站 www.mywebsite.com。该网站是静态的。我想让它动态化,但我想将我自己的服务器与 tomcat 一起使用。

假设应用程序在我的网络服务器上,可以通过以下方式访问:

http://aaa.bbb.ccc.dddd:8084/MyApplication

所以问题是:

当用户进入 www.mywebsite.com 以加载我在 http://aaa.bbb.ccc.dddd:8084/MyApplication 上托管的应用程序时,我怎样才能做到这一点 ?

【问题讨论】:

    标签: tomcat dns ip hosting


    【解决方案1】:

    有多种方法可以实现这一点,包括但不限于:

    1. 代理(例如mod_proxy in an Apache VHost
    2. 重定向(例如使用mod_rewrite in an Apache VHost
    3. Tomcat VHosts

    您还可以使用许多 Web 服务器来实现此目的,但一种非常常见的方法是设置 Apache Web Server 并使用 Apache Tomcat Connectors。本质上,这就是把 Apache 放在 Tomcat 前面,让 Tomcat 根据配置来处理某些请求。

    无论您采用何种路由,您都必须将 DNS(针对您选择的域)指向您的 Web 服务器或您用作 Web 服务器的任何东西。

    【讨论】:

    • 代理和重定向的混合选择是使其工作的最佳方式: ServerName sub.domain.com ProxyPreserveHost On ProxyPass / 192.168.1.23:8080 ProxyPassReverse / 192.168.1.23:8080 虚拟主机>。每次我使用 sub.domain.com:8080 访问我的服务器时,我都会被重定向到所需的页面。
    【解决方案2】:

    你不能。除了提供主机名ip 映射外,DNS 与 HTTP 完全无关。您无法使用 DNS 强制端口,无法使用 dns 强制站点上的特定路径,甚至无法使用 DNS 重定向。

    您唯一的选择是为www.mywebsite.com 设置一个虚拟主机并将用户重定向到“真实”地址,例如

    <virtualhost *:80>
        ServerName www.mywebsite.com
        Redirect Permanent / http://aaa.bbb.ccc.ddd:8084/MyApplication
    </virtualhost>
    

    如果您不希望用户看到 :8084 业务,那么您需要将您的 mywebsite.com“站点”变成透明代理。

    【讨论】:

    • 所以我不需要在主机面板中更改任何 dns 设置
    【解决方案3】:

    在您的服务器上设置代理可能最容易。 将 www.mywebsite.com 的 A 记录更新为 aaa.bbb.ccc.ddd,然后在您的服务器上运行代理。

    如果是apache,

    <VirtualHost aaa.bbb.ccc.ddd:80>
    
      ProxyPass        / http://localhost:8084/MyApplication
      ProxyPassReverse / http://localhost:8084/MyApplication
    
    </VirtualHost>
    

    这样的方法行得通吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-14
      • 2020-01-20
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      相关资源
      最近更新 更多