1、make testmake installii. 安装apr-util1. ./configure -prefix=/usr/local/apr-util/ -with-apr=/usr/local/apr/bin/apr-1-config ./configure -prefix=/usr/local/apr-util/ -with-apr=/usr/local/apr/bin/apr-1-configiii. 安装pcre1. ./configure -prefix=/usr/local/pcre -with-apr=/usr/local/apr/bin/apr-1-config 3. ma
2、ke install ./configure -prefix=/usr/local/pcre -with-apr=/usr/local/apr/bin/apr-1-configiv. 安装httpd1. ./configure -prefix=/opt/apache/httpd -with-apr=/opt/apache/apr/bin/apr-1-config -with-apr-util=/opt/apache/apr-util/bin/apu-1-config -with-pcre=/opt/apache/pcre/bin/pcre-config ./configure -prefix=
3、/opt/apache/httpd -with-apr=/opt/apache/apr/bin/apr-1-config -with-apr-util=/opt/apache/apr-util/bin/apu-1-config -with-pcre=/opt/apache/pcre/bin/pcre-configv. 启动httpd1. 启动 apachectl -k start2. 停止 apachectl -k stop3. 状态 apachectl k graceful4. 重启 apachectl k restart1.2.3 修改运行用户必须修改中的所属用户和组。后面添加虚拟路径的文
4、件夹必须拥有这个用户和组的读写权限,否则会报权限的错。1.2.4 httpd添加虚拟路径打开conf文件夹,在httpd.conf配置文件中添加一段:1. Alias /share /home/vcs/service/data/version 2. 3. Options Indexes MultiViews 4. AllowOverride None 5. Order allow,deny 6. Allow from all 7. Alias /share ServerRoot指令设置了服务器所在的 目录。一般来说它将包含conf/和logs/子目录。使用DEB包安装的系统, 此项的默认值为
5、/etc/apache2 也就是说仅仅包括apache2的配置文件.必须注意, 该目录是受保护的, 不允许非root用户对其进行修改.PidFile/var/run/apache.pid指定记录httpd配置文件守护进程的进程号的文件。由于httpd配置文件能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程。对这个进程发送 信号将影响所有的httpd进程。PidFile定义的文件中就记录httpd 父进程的进程号。DocumentRoot/var/www/html该参数指定Apache服务器存放网页的路径,默认所有要求提供HTTP服务的连接,
6、都以这个目录为主目录。在每个Apache服务器存取的目录中,可以针对每个目录及子目录来设置允许及禁止客户端访问的服务。以下为Apache的默认值。MaxClients150;该参数限制Apache所能提供服务的最高数值,即同一时间连接的数目不能超过这个数值。一旦连接数目达到这个限制,Apache服务器则不再为别的连接提供服务,以免系统性能大幅度下降。Port80该参数用来指定Apache服务器的监听端口。一般来说,标准的HTTP服务默认端口号是80,一般不要更改这个数值。KeepAliveon目前多数的浏览器都请求服务器保持持续连接,这种功能就称为“KeepAlive”,它是HTTP1.1中的
7、标准规格,一般是用来强化服务器的性能。在使用保持连接功能时,设置客户一次请求连接能影响文件的最大上限,建议把默认值设为ON,以便提高访问 性能。MaxKeepAliveRequests100当使用保持连接(persistent connection)功能时,可以使用本参数决定每次连接所能发出的要求数目的上限。如果此数值为0,则表示没有限制。建议尽可能使用较高的数值,以充分发挥Apache的高性能。MaxRequestsPerChild10该参数限制每个子进程(child process)在结束前所能处理的请求数目,一旦达到该数目,这个子进程就会被中止,以避免长时间占据Apache(或者Apac
8、he服务器所采用的函数库),防止造成内存或者其他系统资源的超负荷。MaxSpareServers/MinSpareServers20/5提供Web服务的HTTP守护进程,其数目会随连接的数目而变动。Apache服务器采用动态调整的方法,维持足够的HTTP守护进程数目,以处理目前的负载,也就是同时保持一定的空闲HTTP守护进程来等候新的连接请求。DirectoryIndexinde.html在此命令后添加其他的默认主页文件名,例如可以添加index.htm等。当然这只是Apache的一些基本设置项,大家可以根据自己的实际情况加以灵活的修改,以充分发挥Apache的潜能。如果修改配置文件之后让其立
9、即生效,可以重启Apache服务。1.4 虚拟主机VirtualHost虚拟主机指的是在单一机器上运行多个网站 (例如 和 ) 。 虚拟主机可以“基于 IP”,即每个IP一个站点; 或者“基于名称”, 即每个IP多个站点。这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。可以让apache监听多个端口访问不同的路径。或者多个域名映射到同一个apache时做不同的访问分配。下面实例为监听8001端口,映射到一个本地的物理地址。1. Listen 8001 2. NameVirtualHost *:8001 3. 4. ServerAdmin limingnihao 5. Docume
10、ntRoot E:/_org.js/extjs-4.1.0/6. ServerName extjs.localhost 7. ErrorLog logs/dummy-host2.localhost-error.log8. CustomLog logs/dummy-host2.localhost-access.log common 9. 10. 11. 12. Options Indexes MultiViews 13. AllowOverride None 14. Order allow,deny 15. Allow from all 16. 第2章 负载均衡2.1 Tomcat链接方式首先我
11、们先介绍一下为什么要让http server与Tomcat之间进行连接。事实上Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,装好tomcat后通过8080端口可以直接使用Tomcat所运行的应用程序,你也可以将该端口改为80。既然Tomcat本身已经可以提供这样的服务,我们为什么还要引入Apache或者其他的一些专门的HTTP服务器呢?原因有下面几个:1. 提升对静态文件的处理性能。2. 利用Web服务器来做负载均衡以及容错。3. 无缝的升级应用程序。这三点对一个web网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个Tomcat宕机或者是升
12、级程序导致用户访问不了,而能完成这几个功能的、最好的HTTP服务器也就只有apache的http server了,它跟tomcat的结合是最紧密和可靠的。默认情况下,Tomcat在server.xml中配置了两种连接器:第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。两种端口可以同时开,也可以开一个。例如我们使用apache通过ajp进行负载均衡配置时,可以关掉tomcat的http808
13、0端口以防止可以被单独访问。Web客户访问Tomcat服务器上JSP组件的两种方式如图:使用http方式,配置文件1. Engine name=Catalina defaultHost=localhost jvmRoute=tomcat1使用ajp方式,配置文件Connector port=8009AJP/1.32.2 mod_proxymod_proxy_balancer是apache httpd自带的负载平衡支持。其优点可以根据实际的运行时机器的环境来决定负载均衡的策略。实现Session在node上进行共享传递。2.2.1 加载so库1. #mod_proxy_blancer 2. Lo
14、adModule proxy_module modules/mod_proxy.so 3. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 4. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 5. LoadModule proxy_http_module modules/mod_proxy_http.so 6. LoadModule proxy_connect_module modules/mod_proxy_connect.so 7. LoadModule proxy_bal
15、ancer_module modules/mod_proxy_balancer.so #mod_proxy_blancerLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module mo
16、dules/mod_proxy_connect.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.so2.2.2 http方式Proxy balancer:/mycluster2. BalancerMember http:/127.0.0.1:8080 loadfactor=3 3. BalancerMember http:7080 loadfactor=3 4. ProxySet lbmethod=byrequests 5. 6. ProxyRequests Off 7. ProxyPass /test balance
17、r:/mycluster/ stickysession=JSESSIONID nofailover=Off 8. ProxyPassReverse /test balancer:/mycluster/ BalancerMember http:8080 loadfactor=37080 loadfactor=3 ProxySet lbmethod=byrequestsProxyRequests OffProxyPass /test balancer:/mycluster/ stickysession=JSESSIONID nofailover=OffProxyPassReverse /test
18、balancer:实现负载均衡的原理为:假设Apache接收到http:/127.0.0.1 /test请求,由于该请求满足ProxyPass条件(其URL前缀为“/),该请求会 被分发到后台某一个BalancerMember。譬如该请求可能会转发到http:8080/进行处理。当第二个满足条件的URL请求过来时,该请求可能会被分发到另外一台BalancerMember,譬如,可能会转发到 http:7080/如此循环反复,便实现了负载均衡的机制。loadfactor表示:后台服务器负载到由Apache发送请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。以上面的配置为例,进行
19、4此请求时,则有3次连续的这样请求被负载到BalancerMember为http:8080/的服务器;有1次被负载到BalancerMember为http:7080/的服务器。lbmethod表示:负载载均衡策略。lbmethod=byrequests 按照请求次数均衡(默认) lbmethod=bytraffic 按照流量均衡 lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)ProxyPass表示:所有的test请求都会重定向到balancer:/mycluster/处理。balancer是内置负载。ProxyPassReverse表示:反向代理,也就是将所有的请求反向代理到负载均衡后的应用url路径中。stickysession表示:进行Session复制使用。2.2.3 AJP方式tomcat提供了ajp协议和httpd通信。当不想tomcat的8080端口开放时,可以使用此方式,配置文件:2. BalancerMember ajp:8009 loadfactor=2 route=tomcat1 3. BalancerMember ajp:7009 loadfactor=2 route=tomcat2 BalancerMember ajp:8009
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1