Nginx能提高服务器的QPS吗?

现在的业务就是提供API,只有查询业务。没有静态资源等等。直接用tomcat处理请求和使用nginx处理请求有什么区别?

阅读 3.4k
评论
    3 个回答
    • 6.9k

    抄自http://www.oschina.net/question/723876_159806?sort=time

    公司JAVA程序员:为毛要用nginx服务器代理,不直接用tomcat 7.0,还做多了一次接请求。
    
    我:为了处理静态文件与缓存,也可以很方便的增加服务器。
    
    公司JAVA程序员:我们根本没有静态文件,缓存的话tomcat也可以做,。
    
    我:这个....,你想去掉nginx也可以的,这样我的工作就更方便了。
    
    公司JAVA程序员:那你把nginx关闭,把tomcat端口配置为80.
    
    我:。。。。。
    
    -----------------------------------------------------------------------
    
    我也在想,为毛要nginx服务器。
    
    
    location ~ .* {
                proxy_pass http://127.0.0.1:9000;
                proxy_set_header X-Real-IP $remote_addr;
        }
    
    
    这句话是将所有的东西都交给 tomcat 7.0,我就不明白了。。。

    nginx做得到而tomcat做不到的:

    1.WAF(luajit)
    2.高性能静态文件处理
    3.负载均衡
    4.缓存
    5.其他http server做得到的事情,nginx都能出色地处理好。

    建议在tomcat外面套一层nginx。即便只是审计访问日志,也是很有用的。

      • 10.5k

      总体来说可以, 简单讲的话原因如下

      1. nginx本身性能很出色

      2. tomcat是一个Java Servlet的容器, 虽然也内置了一个Web服务器, 但总体来说并不是专门为这个设计的, 性能是肯定不如nginx的

      3. nginx也是一个负载均衡的服务器, 对于动态内容, 可以分发到多个服务器多个tomcat等进行处理

      4. nginx还有比较灵活的缓存的配置


      题主改了题目, 那么我的回答是, 如果你是单台服务器, 这么做意义不大
      但是一旦你希望做负载均衡, nginx仍然有其价值(或者用haproxy等)

        谁再补充点共享session的,近期用了感觉很方便。

          撰写回答

          登录后参与交流、获取后续更新提醒