apache的作用和tomcat的区别

从网上看到这篇写基础理论比较好,转发一下

经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下:

 

apache支持静态页,tomcat支持动态的,比如servlet等,
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。

apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。

apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。

 

这两个有以下几点可以比较的:
1、两者都是apache组织开发的
2、两者都有HTTP服务的功能
3、两者都是免费的

不同点:
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器

 

 

二:

APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行
如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话 就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK

整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求
如果客户端请求动态页面,则是Tomcat服务器响应请求
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

 

 

三:

apache:侧重于http server
tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效 , 支持JSP,但对静态网页不太理想;
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。

 

负载均衡

网络的高速发展令到负载均衡越来越重要。负载均衡分硬件和软件两种,硬件最出名莫过于F5,NetScaler,Radware和Array等,但都很昂贵,一般中小企业消费不起,于是开源免费的软均衡就有很大的市场了,出名的有Nginx,Haproxy和LVS这几个基于LINUX的开源产品。本人喜欢Nginx/HAProxy+Keepalived作Web最前端的负载均衡器/反向代理,整个网站非常稳定,PV达到了亿级/日的访问量,所以无需担心高并发流量冲击下的稳定情况。

另外haproxy支持TCP 的链接,多达8种的负载均衡算法,包括大家熟悉的roundrobin,也带web管理,下面分享个的配置就是haproxy.cfg给大家,

 

global

log 127.0.0.1       local0

#log 127.0.0.1    local1 notice

#log loghost       local0 info

maxconn 30000

chroot /usr/local/haproxy

nbproc   4

uid 99

gid 99

daemon

pidfile /var/run/haproxy-loadbalancing.pid

#debug

#quiet

 

defaults

log          global

mode    http

option   dontlognull

retries   3

option redispatch

maxconn 30000

listen www-appname

bind  xx.xx.xx.xx:80(这里是实际IP)

mode http

balance roundrobin

server webserver1 10.67.222.171:80 weight 1 check

server webserver2 10.67.222.172:80 weight 1 check

option forwardfor

option httpchk

option httplog

option httpclose

contimeout 3000

clitimeout 5000

srvtimeout 5000

log 127.0.0.1 local3

 

listen mina

bind xx.xx.xx.xx:1139

mode tcp

balance roundrobin

option tcplog

option clitcpka

contimeout 300000

clitimeout 300000

srvtimeout 300000

server minaserver1 10.67.222.171:1139 weight 1 maxconn 3000 check

server minaserver2 10.67.222.172:1139 weight 1 maxconn 3000 check

 

listen admin_stats 10.67.222.170:1080

mode http

stats uri /my_stats

maxconn 2

stats auth user:passwd

contimeout 3000

clitimeout 5000

srvtimeout 5000