如何利用Java webservice获得Ngnix的优势
在过去的几年中,我使用ApacheHTTPD服务器作为我的服务器 据我所知,使用Nginx的最大优势是Apache为每个HTTP请求打开不同的线程,这可能会非常快地加载我的服务器,而Nginx使用一些其他技术(事件驱动),以便最大限度地利用服务器的内存和硬件 到目前为止还不错。 我正在构建一个新的web服务,我希望它有大量的HTTP流量,所以我决定使用Nginx 作为一名优秀的Java程序员,与PHP相比,我更喜欢Java,但在我的案例中,使用Java存在一个概念问题: 在所有的文章中,我发现在应用程序上使用Java的方法是使用Nginx+Tomcat(或其他JavaServer)+Java包装应用程序-因此,如果我理解正确的话-我不会获得Nginx的优势,因为Tomcat将为每个请求打开一个新线程以使用Java web服务 问题:如何利用Java webservice获得Ngnix的优势,java,php,apache,nginx,Java,Php,Apache,Nginx,在过去的几年中,我使用ApacheHTTPD服务器作为我的服务器 据我所知,使用Nginx的最大优势是Apache为每个HTTP请求打开不同的线程,这可能会非常快地加载我的服务器,而Nginx使用一些其他技术(事件驱动),以便最大限度地利用服务器的内存和硬件 到目前为止还不错。 我正在构建一个新的web服务,我希望它有大量的HTTP流量,所以我决定使用Nginx 作为一名优秀的Java程序员,与PHP相比,我更喜欢Java,但在我的案例中,使用Java存在一个概念问题: 在所有的文章中,我发现在
是的,您的理解是正确的,您在这里做的是在tomcat之上添加一个额外的层,因此您不会获得优势,您将获得的唯一优势是服务资产(图像和静态文件),而不将它们传递给apache,这可能会带来一点优势 为什么使用php有这样的优势:因为当使用nginx而不是将php作为apache(mod_php)的一个模块运行时,我们安装了一个单独的服务器PHPFCGI或PHPFPM,因此它独立于apache生成工作线程或线程的方法
好的,让我们明确一点,当使用PHP时,它会为每个请求处理不同的进程,而不是不同的线程?就像我说的,它取决于库和它的配置,比如我使用
php5 fpm
,它确实会产生多个进程(在需要时),但每个进程可以同时处理不同的用户,因此,进程的数量将远低于请求的数量。@MohammadAbuShady:使用Nginx+tomcat(使用Nginx 2到3个tomcat服务器进行负载平衡的服务器)是否有利?1个Nginx和2到3个tomcat?