我已经计划创build一个网站,将在dynamic内容相当沉重,并希望知道什么是我的webstack的一部分最明智的select。
现在我正在试图决定是否应该在nginx上开发,使用PHP来提供dynamic内容,或者使用nginx作为Tomcat的代理,并使用servlet来提供dynamic内容。
我在Java,JSP和servlet方面拥有丰富的经验,所以这是一个很好的select。 另外,由于它是一种编译语言,因此它的执行速度会比PHP快( 这里的意思是Java的速度比PHP快37倍),并且可以更快地创build网页。
我没有使用PHP的经验,但我的印象是很容易拿起。 它比Java慢,但由于客户端只会与nginx通信,所以我认为向客户端提供dynamic创build的网页将会更快。
考虑到这些事情,我想知道:
我不介意学习PHP,如果它最终会给我最好的performance。 我只是想知道从这个angular度来看最好的select是什么。
我的假设是否正确?
不完全是,设置Tomcat的nginx infront与使用nginx“default”php-fpm通过CGI运行设置nginx几乎是一样的。
您只需使用nginx的优秀静态内容function,而只是从Tomcat转发和返回dynamic内容。
瓶颈在哪里发生:创build页面还是将它们提供给客户端?
与只运行Tomcat相比:可能没有任何地方,如果有任何东西你可以放松Tomcat来做Java部分,而nginx处理所有的东西。 给予或花费额外的时间,需要nginx从Tomcat请求和提供页面。
如果我打算使用Tomcat来生成dynamic内容,那么使用nginx代理Tomcat是否会给我带来任何nginx性能优势?
是。
而且,由于它是一种编译语言,因此它的执行速度会比PHP快(这里的含义是Java的速度比PHP快37倍)
不要相信你在互联网上阅读的所有东西;)
尽pipe解释型语言在编译代码的性能方面总是不足,但操作码caching通常会帮助解决问题,并将代码置于半编译状态,从而极大地加快了速度。
不在编译代码的范围内,但足够接近。
当谈到在Java和PHP之间进行select时,您需要记住以下几点:
询问哪一个更好地执行是不可能的,除非你用这两种语言创build相同的应用程序,然后部署和testing它们。 对于99.9999%的团队而言,这当然太昂贵和费时。
当你面对这种select时,你可能会想问一些问题, 而不是 “哪种语言performance更好”:
如果答案是PHP,那么尝试用另一种语言编写应用程序以获得预期的性能是愚蠢的。 但是,如果你的团队(即使只是你)对Java更加适应,那么把你的时间尽可能做到你所知道的是一个好主意。
HTH!