我们有一个生产设置,
前端的 Squid(缓存图像、js、css 等)
中间的 Apache httpd(prefork + mod_rewrite + mod_jk/AJP + mod_deflate + mod_php(一些 php 页面))
Apache tomcat 5.5 最后提供所有动态内容。
减少请求路径中 3 台服务器的开销的最佳方法是什么?
想知道用更快的 Web 服务器(如 nginx/lighttpd)替换 httpd 是否有帮助。httpd 现在负责 URL 重写(用于清理 URL)、与 tomcat 通信(通过 mod_jk)、压缩输出(mod_deflate)以及提供一些低流量 php 页面。考虑到我们需要这些功能,什么才是 httpd 的理想替代品?
有没有办法用一个可以很好地缓存静态内容的单一实体(如 squid)来替换(squid + apache),重写 url,压缩响应并将动态内容直接转发到 tomcat?听说过 varnish 缓存,想知道它是否有帮助。
答案1
优化可以说是一门“黑魔法”。有很多方法可以解决问题。
在研究如何改进之前,您需要先确定您的瓶颈。
虽然可以用替代品替换掉所有的服务器软件,但这只有在软件成为瓶颈而不是其他东西(例如网络带宽或 I/O 带宽)时才有帮助。
您可以首先对现有设置进行基准测试,然后调整现有设置以查看它们是否有所改善。