Nginx重写和(稍后)负载均衡器:这可能吗?

时间:2017-12-09 00:15:34

标签: nginx url-rewriting proxypass

我是一个基于IIS的旧网站,由于历史原因,它通过Helicon APE使用了大量的RewriteRule。现在,当我们使用多个客户端访问服务器时,Helicon APE经常崩溃(实际上非​​常频繁)。预计整套IIS服务器(4)将不断增长,整个系统将进行扩展,最近在webapp中进行了大量工作,以支持新功能和用户增长。

有人建议在IIS服务器之前使用NGINX作为负载均衡器,因为它会更好地处理越来越多的流量,并在命中IIS之前应用这些重写,因此在负载平衡之前URL将转换为新格式它们。

根据建议,我们在linux上设置了一个POC nginx 1.13,其中包含重写规则(来自APE中使用的重写规则),并使用了proxy_pass和两个服务器。但我们已经注意到了几个问题:

  • 重写规则似乎不按照应有的方式工作;我们可以检查正则表达式是否确实有效(将它们放在位置),但URL似乎没有被重写。

  • ProxyPass通常会返回400个错误请求或者没有命中服务器。

  • 但是,如果我们使用一些更简单的正则表达式设置多个位置,然后我们将ProxyPass放入后端服务器和新的URL模式,那么服务器就会被正确的请求命中。然而,这个解决方案带来了一些问题:我们的一些重写是对其他人的补充,所以转换可以分三步完成(一个改变规则的第一部分,第二部分改变另一部分,第三部分将全部加在一起)带有break标志的有效url)。这是不可能混合位置。

    通过StackOverflow,博客,支持网站和邮件列表进行了大量研究,以找到解决问题的方法,但有时建议的解决方案根本不起作用(或部分起作用),说实话,在这一周之后,我们担心我们想到的建设是不可能完成的。

    我们也尝试使用haproxy,haproxy真的很奇怪(即:发送附加到请求的错误消息是LB' d)。

    正如标题总结的那样,在上面的长篇描述之后,问题是:有人确认我们想要实现的目标是否真的能用nginx完成?如果没有,可以使用什么?

0 个答案:

没有答案