nginx或dns url基于路径重写或屏蔽
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx或dns url基于路径重写或屏蔽相关的知识,希望对你有一定的参考价值。
我在一个网站上工作,这是一个旅游博客,还有子标签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.txt
和mytravelsite.com/sitemap.xml
解决我在10.1.1.1
的托管
以及在10.10.10.10
解决whitelabel的其他一切
我猜这可以通过一些dns设置或nginx代理或重写规则来完成,但我在互联网上搜索过去2天的所有内容都以失败告终。
DNS仅考虑名称,即斜杠之前的部分。你总是mytravelsite.com
,所以这不能完全在DNS中完成。
我知道这不是一个真实/完整的答案。
我会尝试使用代理解决它。
包含的片段不是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
仅用于说明应该放置哪个服务器。- 它也不会开箱即用 - 只需从这里开始并迭代到最终解决方案
- 您尚未定义如何识别“您的托管网站”,因此示例中缺少它
以上是关于nginx或dns url基于路径重写或屏蔽的主要内容,如果未能解决你的问题,请参考以下文章
怎么把url的aspx后缀去掉,用URL重写还是啥生成的,具体操作讲下,或具体代码