现在的业务就是提供API,只有查询业务。没有静态资源等等。直接用tomcat处理请求和使用nginx处理请求有什么区别?
抄自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。即便只是审计访问日志,也是很有用的。
谁再补充点共享session的,近期用了感觉很方便。
总体来说可以, 简单讲的话原因如下
nginx本身性能很出色
tomcat是一个Java Servlet的容器, 虽然也内置了一个Web服务器, 但总体来说并不是专门为这个设计的, 性能是肯定不如nginx的
nginx也是一个负载均衡的服务器, 对于动态内容, 可以分发到多个服务器多个tomcat等进行处理
nginx还有比较灵活的缓存的配置
题主改了题目, 那么我的回答是, 如果你是单台服务器, 这么做意义不大
但是一旦你希望做负载均衡, nginx仍然有其价值(或者用haproxy等)