【问题标题】:How can one reference subdomains on a dev server that also correctly resolve on a production server? [closed]如何在开发服务器上引用子域,同时在生产服务器上正确解析? [关闭]
【发布时间】:2011-09-05 17:15:14
【问题描述】:

我在 dev.example.com 之类的地方有一个 LAMP 开发服务器。最终,这将被复制到 www.example.com 之类的地方,我们将在其中拥有 root 访问权限。

我想让系统管理员设置一些子域(例如 subdomain1.example.com),这样它们就可以在开发服务器和生产服务器上工作,而不必重写对这些子域的引用.

可以在开发和生产服务器上配置 Apache,以便我的代码可以引用 subdomain1.localhost 之类的内容吗?有没有其他方法可以做到这一点?

(服务器将运行最新版本的 CentOS 和 AMP 堆栈。)

【问题讨论】:

  • 如果我理解正确,您很乐意返回不同的答案(subdomain1.LOCALHOST vs subdomain1.example..com),即您很乐意更改/参数化您的代码。
  • 感谢您的回复。通过参数化代码,我假设您的意思是根据它所在的服务器动态生成子域引用。那是对的吗?如果是这样,我想这可能会奏效。但是,上下文是内容管理员(非开发人员)需要将其中一些子域引用输入到 CMS(Drupal)中。最好不要教他们输入 PHP。
  • 您不能拥有指向不同子域的相对 URL。有些东西需要翻译它们或在输出之间切换。也许开发站点上的自定义输入过滤器将“实时” URL 转换为开发站点?

标签: apache subdomain production dev-to-production


【解决方案1】:

我终于在CDN模块中找到了答案。顾名思义,这旨在与内容交付网络一起使用,但实际上它所做的只是对 Drupal 输出的 URL 进行基于规则的重写。我用它来重写 URL,以便可以从唯一的主机名提供不同的文件类型(同样,最大化并行下载)。

【讨论】:

    【解决方案2】:

    再次阅读您的问题,我认为您希望您的代码始终返回 subdomain1.localhost,并且您希望 apache 以某种方式将其更改为您的生产服务器上的 subdomain1.example.com。

    您可以使用 ProxyPassReverse 执行此操作,但如果 subdomain1 位于同一台计算机上,您可能必须运行两个 Apache 副本。 (我不知道 Apache 是否会在这里自言自语)。这是一个昂贵的解决方案。

    相反,我建议您参数化您的代码。 在 Rails 堆栈上,使用 capistrano 推荐的 production.rb cp 执行此操作的最简单方法,您可能想研究部署 PHP 代码的类似方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-06
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多