Apache Http Server2.2采取ajp协议配置tomcat7负载均衡
Apache Http Server2.2采用ajp协议配置tomcat7负载均衡
192.168.1.177--->apache http server 2.2.31
192.168.1.178--->apache-tomcat-7.0.73
192.168.1.179--->apache-tomcat-7.0.73
ssh登录192.168.1.177
[root@apachehs opt]# vi /etc/hosts
192.168.1.177 apachehs
[root@apachehs opt]# yum install gcc
[root@apachehs opt]# yum install -y gcc gcc-c++
下面安装Apache Http Server
[root@apachehs httpd-2.2.31]# tar xvf httpd-2.2.31.tar.gz
[root@apachehs home]# cd httpd-2.2.31
[root@apachehs httpd-2.2.31]# ./configure --prefix=/home/webserver/apache
[root@apachehs httpd-2.4.18]# make
[root@apachehs httpd-2.4.18]# make install
[root@apachehs httpd-2.4.18]# cd /home/webserver/apache/conf
[root@apachehs conf]# ls
extra httpd.conf magic mime.types original
[root@apachehs bin]# ./httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
[root@apachehs bin]# ./httpd -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
log_config_module (static)
env_module (static)
setenvif_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
cgi_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
so_module (static)
Syntax OK
为Apache2.2添加mod_proxy模块:
先找到apache源码中modules/proxy目录并进入,然后使用bin/apxs进行编译安装。
[root@apachehs ~]# cd /usr/local/src/httpd-2.2.31/modules/proxy
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_balancer.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_connect.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_http.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_ftp.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_scgi.c
-c表示进行编译,-i表示将生成的模块安装到apache的modules目录下,-a选项在httpd.conf中增加一条LoadModule指令以载入刚安装的模块,或者如
果此指令已存在,则启用之。
apxs会根据源码判断模块的名称,或者(在失败的情况下)根据文件名推测模块名称,可以用-n选项显式地指定模块名称。
安装成功以后将在apache的modules目录下生成mod_proxy.so文件,并且在httpd.conf中加入了一行
下面开始配置Apache Http Server
[root@apachehs home]# vi httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
找到#Listen 80...一行,在下面添加
Listen 192.168.1.177:10080
找到#ServerName ...一行,在下面添加
ServerName 192.168.1.177:10080
在文件的最后加上如下几行:
ProxyRequests Off
<Proxy balancer://clu>
BalancerMember ajp://192.168.1.178:8009 loadfactor=1
BalancerMember ajp://192.168.1.179:8009 loadfactor=1
</Proxy>
[root@apachehs conf]# vi extra/httpd-vhosts.conf
<VirtualHost *:10080>
# ServerAdmin shihuan830619@163.com
# DocumentRoot "/home/webserver/apache/docs/dummy-host.example.com"
ServerName 192.168.1.177:10080
# ServerAlias www.shihuan.example.com
ProxyPass / balancer://clu/ stickysession=JSESSIONID nofailover=On
ProxyPassReverse / balancer://clu/
ErrorLog "logs/cluster-error.log"
CustomLog "logs/custer-access.log" common
</VirtualHost>
[root@apachehs conf]# vi /etc/httpd/conf/httpd.conf
添加
ServerName 192.168.1.177:10080
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k start
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k stop
----------------------------------------------------------------------------------
ssh登录192.168.1.178
[root@tomcat1 home]# vi /etc/hosts
192.168.1.178 tomcat1
[root@tomcat1 home]# rpm -ivh jdk-7u80-linux-x64.rpm
[root@tomcat1 home]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat1 home]# source /etc/profile
[root@tomcat1 home]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@tomcat1 home]# tar xvf apache-tomcat-8.0.32.tar.gz
[root@tomcat1 home]# cd apache-tomcat-8.0.32/conf
[root@tomcat1 conf]# vi server.xml
关注
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
[root@tomcat1 conf]# cd ../bin
[root@tomcat1 bin]# ./startup.sh
[root@tomcat1 bin]# ./shutdown.sh
----------------------------------------------------------------------------------
ssh登录192.168.1.179
[root@tomcat2 home]# vi /etc/hosts
192.168.1.179 tomcat2
[root@tomcat2 home]# rpm -ivh jdk-7u80-linux-x64.rpm
[root@tomcat2 home]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat2 home]# source /etc/profile
[root@tomcat2 home]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@tomcat2 home]# tar xvf apache-tomcat-8.0.32.tar.gz
[root@tomcat2 home]# cd apache-tomcat-8.0.32/conf
[root@tomcat2 conf]# vi server.xml
关注
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
[root@tomcat2 conf]# cd ../bin
[root@tomcat2 bin]# ./startup.sh
[root@tomcat2 bin]# ./shutdown.sh
----------------------------------------------------------------------------------
最后启动测试两个tomcat和apacheserver,启动顺序不能错
[root@tomcat1 bin]# ./startup.sh
[root@tomcat2 bin]# ./startup.sh
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k start
在浏览器的地址栏里输入 http://192.168.1.177:10080/
192.168.1.177--->apache http server 2.2.31
192.168.1.178--->apache-tomcat-7.0.73
192.168.1.179--->apache-tomcat-7.0.73
ssh登录192.168.1.177
[root@apachehs opt]# vi /etc/hosts
192.168.1.177 apachehs
[root@apachehs opt]# yum install gcc
[root@apachehs opt]# yum install -y gcc gcc-c++
下面安装Apache Http Server
[root@apachehs httpd-2.2.31]# tar xvf httpd-2.2.31.tar.gz
[root@apachehs home]# cd httpd-2.2.31
[root@apachehs httpd-2.2.31]# ./configure --prefix=/home/webserver/apache
[root@apachehs httpd-2.4.18]# make
[root@apachehs httpd-2.4.18]# make install
[root@apachehs httpd-2.4.18]# cd /home/webserver/apache/conf
[root@apachehs conf]# ls
extra httpd.conf magic mime.types original
[root@apachehs bin]# ./httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
[root@apachehs bin]# ./httpd -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
authn_file_module (static)
authn_default_module (static)
authz_host_module (static)
authz_groupfile_module (static)
authz_user_module (static)
authz_default_module (static)
auth_basic_module (static)
include_module (static)
filter_module (static)
log_config_module (static)
env_module (static)
setenvif_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
mime_module (static)
status_module (static)
autoindex_module (static)
asis_module (static)
cgi_module (static)
negotiation_module (static)
dir_module (static)
actions_module (static)
userdir_module (static)
alias_module (static)
so_module (static)
Syntax OK
为Apache2.2添加mod_proxy模块:
先找到apache源码中modules/proxy目录并进入,然后使用bin/apxs进行编译安装。
[root@apachehs ~]# cd /usr/local/src/httpd-2.2.31/modules/proxy
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy.c proxy_util.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_ajp.c ajp*.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_balancer.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_connect.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_http.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_ftp.c
[root@apachehs proxy]# /usr/local/apache/bin/apxs -c -i -a mod_proxy_scgi.c
-c表示进行编译,-i表示将生成的模块安装到apache的modules目录下,-a选项在httpd.conf中增加一条LoadModule指令以载入刚安装的模块,或者如
果此指令已存在,则启用之。
apxs会根据源码判断模块的名称,或者(在失败的情况下)根据文件名推测模块名称,可以用-n选项显式地指定模块名称。
安装成功以后将在apache的modules目录下生成mod_proxy.so文件,并且在httpd.conf中加入了一行
下面开始配置Apache Http Server
[root@apachehs home]# vi httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
找到#Listen 80...一行,在下面添加
Listen 192.168.1.177:10080
找到#ServerName ...一行,在下面添加
ServerName 192.168.1.177:10080
在文件的最后加上如下几行:
ProxyRequests Off
<Proxy balancer://clu>
BalancerMember ajp://192.168.1.178:8009 loadfactor=1
BalancerMember ajp://192.168.1.179:8009 loadfactor=1
</Proxy>
[root@apachehs conf]# vi extra/httpd-vhosts.conf
<VirtualHost *:10080>
# ServerAdmin shihuan830619@163.com
# DocumentRoot "/home/webserver/apache/docs/dummy-host.example.com"
ServerName 192.168.1.177:10080
# ServerAlias www.shihuan.example.com
ProxyPass / balancer://clu/ stickysession=JSESSIONID nofailover=On
ProxyPassReverse / balancer://clu/
ErrorLog "logs/cluster-error.log"
CustomLog "logs/custer-access.log" common
</VirtualHost>
[root@apachehs conf]# vi /etc/httpd/conf/httpd.conf
添加
ServerName 192.168.1.177:10080
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k start
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k stop
----------------------------------------------------------------------------------
ssh登录192.168.1.178
[root@tomcat1 home]# vi /etc/hosts
192.168.1.178 tomcat1
[root@tomcat1 home]# rpm -ivh jdk-7u80-linux-x64.rpm
[root@tomcat1 home]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat1 home]# source /etc/profile
[root@tomcat1 home]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@tomcat1 home]# tar xvf apache-tomcat-8.0.32.tar.gz
[root@tomcat1 home]# cd apache-tomcat-8.0.32/conf
[root@tomcat1 conf]# vi server.xml
关注
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
[root@tomcat1 conf]# cd ../bin
[root@tomcat1 bin]# ./startup.sh
[root@tomcat1 bin]# ./shutdown.sh
----------------------------------------------------------------------------------
ssh登录192.168.1.179
[root@tomcat2 home]# vi /etc/hosts
192.168.1.179 tomcat2
[root@tomcat2 home]# rpm -ivh jdk-7u80-linux-x64.rpm
[root@tomcat2 home]# vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat2 home]# source /etc/profile
[root@tomcat2 home]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@tomcat2 home]# tar xvf apache-tomcat-8.0.32.tar.gz
[root@tomcat2 home]# cd apache-tomcat-8.0.32/conf
[root@tomcat2 conf]# vi server.xml
关注
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
[root@tomcat2 conf]# cd ../bin
[root@tomcat2 bin]# ./startup.sh
[root@tomcat2 bin]# ./shutdown.sh
----------------------------------------------------------------------------------
最后启动测试两个tomcat和apacheserver,启动顺序不能错
[root@tomcat1 bin]# ./startup.sh
[root@tomcat2 bin]# ./startup.sh
[root@apachehs home]# /home/webserver/apache/bin/apachectl -k start
在浏览器的地址栏里输入 http://192.168.1.177:10080/