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

问题描述 投票:1回答:2

我在一个网站上工作,这是一个旅游博客,还有子标签mytravelsite.com/tickets,这是白色标签,mytravelsite.com/tickets/fares和其他页面下的所有内容都指向另一个IP,这很好。

但现在我想切换,现在主要网站是mytravelsite.com,这将是来自mytravelsite.com/tickets的whitelabel,但没有/tickets在网址但仍然保持我的博客所以另一个麻烦是whitelabel没有robots.txt所以这我将不得不服务于我的托管。

所以最后我主持10.1.1.1 ip和whitelabel解析为10.10.10.10 ip

我需要的是:

所有在mytravelsite.com/blog下解决我的托管和我的托管网站10.1.1.1以及mytravelsite.com/robots.txtmytravelsite.com/sitemap.xml解决我在10.1.1.1的托管

以及在10.10.10.10解决whitelabel的其他一切

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

nginx dns resolve white-labelling
2个回答
0
投票

DNS仅考虑名称,即斜杠之前的部分。你总是mytravelsite.com,所以这不能完全在DNS中完成。

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


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.*.*.*是一个仅限本地的网络,因此virtualhost标头中的10.10.10.10仅用于说明应该放置哪个服务器。
  • 它也不会开箱即用 - 只需从这里开始并迭代到最终解决方案
  • 您尚未定义如何识别“您的托管网站”,因此示例中缺少它
© www.soinside.com 2019 - 2024. All rights reserved.