我应该在nginx中使用rewrite或return或proxy_pass吗?
Apache documentation非常清楚地表明mod_rewrite应该只是最后的手段.对于nginx,陷阱部分有一些示例,其中request_uri基本上没有变化. 情况是这样的: >我们(一个研究所的一个部门)有一个主要的网络服务器,即将升级(运行Debian 6).为了处理升级,我已经设置了一个nginx服务器,它将已知的部件代理到升级后的服务器,其他部件代理到旧服务器. 我的主要问题是: >鉴于A和B都在不同的服务器上代理C,我应该使用重写或位置返回将B的请求重定向到A,还是继续代理两者? 重定向(和返回)具有清楚地指示两个目录之间的关系的好处. 我的重写规则如下:
并且退货规则:
附:
最佳答案
如果您的nginx服务器每秒处理数千个请求并且您希望避免每个请求在重写正则表达式匹配中花费CPU时间,那么execpt并不重要.现在,我会说使用最清晰的方式编写配置文件,直到达到此限制,然后如果您没有预算来扩展基础架构,那么就应该考虑欺骗配置以适应您的流量.返回的缺点是,如果您有多个重定向,最终会有一个包含一个返回指令的位置.使用重写,您可以将其中的多个包装在一个通用位置,并在第一个参数中测试更具体的模式.
更新:通用位置中的多重定向示例:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |