nginx或dns url基于路径重写或屏蔽

时间:2018-03-02 12:52:24

标签: nginx dns resolve white-labelling

我在一个旅行博客的网站上工作,有一个子标题<GenericTable />是白色标签,mytravelsite.com/tickets和其他页面下的所有内容都指向另一个IP,这样可以正常工作。

但是现在我想切换现在主网站为mytravelsite.com/tickets/fares,这将是mytravelsite.com的白标,但网址中没有mytravelsite.com/tickets,但仍保留我的博客,因此另一个麻烦就是whitelabel没有/tickets因此我必须从我的托管中提供服务。

所以最后我主持了robots.txt ip和whitelabel解析为10.1.1.1 ip

我需要的是:

10.10.10.10下的所有内容都可以mytravelsite.com/blog解析我的托管和托管网站 以及10.1.1.1mytravelsite.com/robots.txtmytravelsite.com/sitemap.xml

解析我的托管服务

以及在10.1.1.1

处解决白标的所有其他问题

我猜这可以通过一些dns设置或nginx代理或重写规则来完成,但我在互联网上搜索过去2天的所有内容都以失败告终。

2 个答案:

答案 0 :(得分:0)

DNS仅考虑名称,即斜杠前的部分。您始终mytravelsite.com,因此无法完全在DNS中完成此操作。

我知道这不是一个真实/完整的答案。

答案 1 :(得分:0)

我会尝试使用代理解决它。

附带的代码段不是nginx的配置,而是apache的配置,因为我现在无法在nginx内设置类似的设置。但我相信它可能是有用的起点。

<VirtualHost 10.10.10.10:80>
    ServerName mytravelsite.com

    ProxyPreserveHost On
    ProxyPass /blog/ http://10.1.1.1/ retry=1 timeout=600 keepalive=On
    ProxyPassReverse /blog/ http://10.1.1.1/

    ProxyPass /robots.txt http://10.1.1.1/ retry=1 timeout=600 keepalive=On
    ProxyPassReverse /robots.txt http://10.1.1.1/

    ProxyPass /sitemap.xml http://10.1.1.1/ retry=1 timeout=600 keepalive=On
    ProxyPassReverse /sitemap.xml http://10.1.1.1/
</VirtualHost>

注意:

  • 10.*.*.*是仅限本地的网络,因此10.10.10.10位于此网络内 virtualhost标头只是用于说明什么服务器 定义应该放在。

  • 它也不会开箱即用 - 只需从这里开始 迭代到最终解决方案

  • 您尚未定义如何识别“您的托管网站”,因此示例中缺少