Apache2.4.29+Tomcat 8.5.29负载均衡群集最强解析

公司是做电商的,线上的应用服务器大多都是Apache+Tomcat或者Nginx+Tomcat ,虽然之前也对Apache和Nginx的配置文件熟悉,可对这种负载均衡群集配置还不是太熟悉,而日常工作经常需要搞这些东西,所以下决心搞明白哈哈哦。结合公司的线上配置,结合官方的文档说明,特整理如下,方便以后查阅,毕竟好记性不如烂笔头。

一:本文涉及的相关环境和软件版本

IP :192.168.86.129/24 ,通过NAT模式同宿主机相连

CentOS-7.4-minimal、http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso

Apache/2.4.29 (Unix)、http://httpd.apache.org/download.cgi#apache24

Apr/1.6.3、https://apr.apache.org/download.cgi#aprutil1

Apr-util/1.6.1、https://apr.apache.org/download.cgi#aprutil1

Tomcat/8.5.29、https://tomcat.apache.org/download-80.cgi

jdk-8u161-linux-x64、http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tomcat-connectors-1.2.43 http://tomcat.apache.org/download-connectors.cgi

二:安装基础环境(本文安装包均提前下载放在/opt下)

[root@cheng opt]# yum -y install wget unzip lrzsz openssl openssl-devel autoconf libtool gcc*

执行yum命令时若出现这个错误:Error: database disk image is malformed

这是说明yum的缓存出错,需要清理缓存,执行yum clean dbcache命令即可

配置环境时configure的主要工作就是生成Makefile,编译源码时的make命令就是根据Makefile来进行编译

1.安装apr/apr-util/pcre

[root@cheng opt]# rpm -q apr

apr-1.4.8-3.el7_4.1.x86_64

[root@cheng opt]# rpm -q apr-util

apr-util-1.5.2-6.el7.x86_64

[root@cheng opt]# rpm -e apr --nodeps

[root@cheng opt]# rpm -e apr-util --nodeps

[root@cheng opt]# tar zxvf apr-1.6.3.tar.gz

[root@cheng opt]# cd apr-1.6.3

[root@cheng apr-1.6.3]# ./configure --prefix=/usr/local/apr

报错如下图

网上的方法:https://my.oschina.net/u/146514/blog/196168 ($RM "$cfgfile这一行注释,在configure文件30976行)

[root@cheng apr-1.6.3]# make && make install

成功会有以下提示

/usr/bin/install -c -m 755 /opt/apr-1.6.3/build/mkdir.sh /usr/local/apr/build-1

for f in make_exports.awk make_var_export.awk; do \

/usr/bin/install -c -m 644 /opt/apr-1.6.3/build/${f} /usr/local/apr/build-1; \

done

/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk

/usr/bin/install -c -m 644 /opt/apr-1.6.3/build/apr_common.m4 /usr/local/apr/build-1

/usr/bin/install -c -m 644 /opt/apr-1.6.3/build/find_apr.m4 /usr/local/apr/build-1

/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config

这时候/usr/local下就会有apr的目录文件

[root@cheng apr-1.6.3]# cd ../

[root@cheng opt]# tar zxvf apr-util-1.6.1.tar.gz

[root@cheng opt]# cd apr-util-1.61

[root@cheng apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/

[root@cheng apr-util-1.6.1]# make && make install

发现报错fatal error: expat.h: No such file or directory

解决办法:根据提示安装expat包,yum -y install expat-devel,之后再重新编译。

成功会有以下提示

----------------------------------------------------------------------

Libraries have been installed in:

/usr/local/apr-util//lib

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the '-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable

during execution

- add LIBDIR to the 'LD_RUN_PATH' environment variable

during linking

- use the '-Wl,-rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util//lib

/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util//bin/apu-1-config

[root@cheng apr-util-1.6.1]# cd ..

[root@cheng opt]# cd pcre-8.41

[root@cheng pcre-8.41]# ./configure --prefix=/usr/local/pcre

[root@cheng pcre-8.41]# make  && make install

成功会有以下提示

ln -sf pcre_get_substring_list.3 /usr/local/pcre/share/man/man3/pcre32_get_substring_list.3

ln -sf pcre_jit_exec.3 /usr/local/pcre/share/man/man3/pcre32_jit_exec.3

ln -sf pcre_jit_stack_alloc.3 /usr/local/pcre/share/man/man3/pcre32_jit_stack_alloc.3

ln -sf pcre_jit_stack_free.3 /usr/local/pcre/share/man/man3/pcre32_jit_stack_free.3

ln -sf pcre_maketables.3 /usr/local/pcre/share/man/man3/pcre32_maketables.3

ln -sf pcre_pattern_to_host_byte_order.3 /usr/local/pcre/share/man/man3/pcre32_pattern_to_host_byte_order.3

ln -sf pcre_refcount.3 /usr/local/pcre/share/man/man3/pcre32_refcount.3

ln -sf pcre_study.3 /usr/local/pcre/share/man/man3/pcre32_study.3

ln -sf pcre_utf32_to_host_byte_order.3 /usr/local/pcre/share/man/man3/pcre32_utf32_to_host_byte_order.3

ln -sf pcre_version.3 /usr/local/pcre/share/man/man3/pcre32_version.3

make[3]: Leaving directory `/opt/pcre-8.41'

make[2]: Leaving directory `/opt/pcre-8.41'

make[1]: Leaving directory `/opt/pcre-8.41'

至于为什么要安装这些东西,请看官方文档

2.安装apache

最好以root安装和启动Apache,以root运行之后,apache就会把它的派生进程切换到非root用户

[root@cheng pcre-8.41]# cd ..

[root@cheng opt]# tar zxvf httpd-2.4.29.tar.gz

[root@cheng opt]# cd httpd-2.4.29ith-apr=

[root@cheng httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-ssl --enable-rewrite --enable-proxy --enable-proxy-http --enable-proxy-ajp --enable-proxy-banlancer --with-zlib --w/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/etc/pki/tls  --enable-mods-shared=all --enable-mpms-shared=all --with-mpm=event --with-pcre=/usr/local/pcre

简单解释如下

--prefix=/usr/local/httpd 安装到此文件夹

--sysconfdir=/etc/httpd2.4  指定配置文件路径

--enable-so  启动模块动态装卸载

--enable-ssl 编译ssl模块

--enable-cgi 支持cgi机制(能够让静态web服务器能够解析动态请求的一个协议)

--enable-rewrite  支持url重写

--with-zlib  支持数据包压缩

--with-pcre  支持正则表达式

--with-apr=/usr/local/apr  指明依赖的apr所在目录

--with-apr-util=/usr/local/apr-util/  指明依赖的apr-util所在的目录

--enable-modules=most      用most可以将一些不常用的,不在缺省常用模块中的模块编译进来

--enable-mods-shared=all 意思是动态加载所有模块,如果去掉-shared话,是静态加载所有模块

--enable-mpms-shared=all   以共享方式编译的模块

--with-mpm=event        指明httpd的工作方式为event

查看apache有那几个mpm

# ./configure --help|grep mpm

查看apache可以加载那些模块

./configure --help|grep enable

官网的解释如下

编译参数--with-ssl可以指明路径也可以不指,如果要指,可以通过下面命令openssl version -a查看

编译为三种都支持:--enable-mpms-shared=all,这样在编译的时候会在modules目录下自动编译出三个MPM文件的so,然后通过修改httpd.conf配置文件更改MPM(去掉LoadModule mpm_event_module modules/mod_mpm_*.so相应的模块注释)

在apache的早期版本2.0默认prefork,2.2版本是worker,2.4版本是event

[root@cheng ~]# openssl version -a

OpenSSL 1.0.2k-fips  26 Jan 2017

built on: reproducible build, date unspecified

platform: linux-x86_64

options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)

compiler: gcc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM

OPENSSLDIR: "/etc/pki/tls"

engines:  rdrand dynamic

[root@cheng httpd-2.4.29]# make && make install

成功会有如下提示

mkdir /usr/local/httpd/icons

mkdir /usr/local/httpd/logs

Installing CGIs

mkdir /usr/local/httpd/cgi-bin

Installing header files

mkdir /usr/local/httpd/include

Installing build system files

mkdir /usr/local/httpd/build

Installing man pages and online manual

mkdir /usr/local/httpd/man

mkdir /usr/local/httpd/man/man1

mkdir /usr/local/httpd/man/man8

mkdir /usr/local/httpd/manual

make[1]: Leaving directory `/opt/httpd-2.4.29'

3.安装connectors

[root@cheng opt]# tar zxvf tomcat-connectors-1.2.43-src.tar.gz

[root@cheng opt]# cp -ar tomcat-connectors-1.2.43-src /usr/local/

[root@cheng opt]# cd /usr.local/tomcat-connectors-1.2.43-src

[root@cheng tomcat-connectors-1.2.43-src]# cd native/

[root@cheng native]# ./buildconf.sh

buildconf: checking installation...

buildconf: autoconf version 2.69 (ok)

buildconf: libtool  version 2.4.2 (ok)

buildconf: libtoolize --automake --copy

buildconf: aclocal

buildconf: autoheader

buildconf: automake -a --foreign --copy

buildconf: autoconf

[root@cheng native]# ./configure --with-apxs=/usr/local/httpd/bin/apxs

[root@cheng native]# make && make install

编译后红箭头的文件变大,这是我自己发现的,哈哈哦

[root@cheng native]# cd apache-2.0/

[root@cheng apache-2.0]# ls

bldjk54.qclsrc  config.m4  Makefile.apxs     Makefile.in  mod_jk.a  mod_jk.la  mod_jk.o   NWGNUmakefile

bldjk.qclsrc    Makefile   Makefile.apxs.in  Makefile.vc  mod_jk.c  mod_jk.lo  mod_jk.so

[root@cheng apache-2.0]# cp mod_jk.so /usr/local/httpd/modules/

cp: overwrite ‘/usr/local/httpd/modules/mod_jk.so’? y

4.安装tomcat/jdk

[root@cheng apache-2.0]# cd /opt

[root@cheng opt]# tar zxvf apache-tomcat-8.5.29.tar.gz

[root@cheng opt]# cp -ar apache-tomcat-8.5.29 /usr/local/apache-tomcat8

[root@cheng opt]# tar zxvf jdk-8u161-linux-x64.tar.gz

[root@cheng opt]# cp -ar jdk1.8.0_161/ /usr/local/

配置全局环境变量 vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_161

export JRE_HOME=/usr/local/jdk1.8.0_161/jre

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/jdk1.8.0_161/bin

export CLASSPATH=./:/usr/local/jdk1.8.0_161/lib:/usr/local/jdk1.8.0_161/jre/lib

刷新变量使其生效source /etc/profile

至此搞一段落,基础软件已安装完毕。

转载于:https://blog.51cto.com/12943999/2093522

Apache2.4.29+Tomcat 8.5.29负载均衡群集最强解析相关推荐

  1. Apache+Tomcat +mod_proxy集群负载均衡及session

      序言: 在玩Apache+Tomcat +mod_jk集群负载均衡及session的时候发现,还有一种方式可以实现,就是网上各位大牛们说的mod_proxy反向代理. 实在弄的我的知识细胞洋洋.实 ...

  2. 实践中整理出tomcat集群和负载均衡

    实践中整理出tomcat集群和负载均衡 来源:http://macrochen.blogdriver.com/macrochen/1207263.html (一)环境说明 (1)服务器有4台,一台安装 ...

  3. Centos6.2上做nginx和tomcat的集成及负载均衡(已实践)

    Centos6.2上做nginx和tomcat的集成及负载均衡 ---------------------------------------------------------Jdk-------- ...

  4. Nginx+Tomcat集群与负载均衡

    Nginx+Tomcat集群与负载均衡 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面(注:没做动静分离,静态动态全部都转给tomca ...

  5. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

  6. Nginx+Tomcat负载均衡群集

    通常情况下,单个Tomcat站点由于可能出现单点故障而无法应付客户复杂多样的请求,所以需要结合Nginx强大的处理并发连接能力,将Nginx作为负载均衡器,用于调用Tomcat服务器,从而实现负载均衡 ...

  7. Tomcat多实例与负载均衡

    Tomcat多实例与负载均衡 前言 一.Tomcat多实例 (1)安装jdk (2)安装tomcat (3)配置tomcat环境变量 (4)修改tomcat2中的主配置文件 (5)修改启动脚本和关闭脚 ...

  8. Radware负载均衡项目配置实战解析之四-VRRP双机配置与同步

    接上一小节内容,这一节主要介绍RADWARE负载均衡实战项目中的VRRP双机配置与同步问题.radware在实际的业务与配置中,一般都会配置双机来实现冗余.无论是主用设备还是备用设备都要进行基本配置. ...

  9. LVS负载均衡群集 --NAT模式实战部署(图文详解)

    目录 一.群集应用概述 1.1 群集的含义 1.2 应用场景出现高并发的解决方案 1.3 系统性能扩展方式 1.4 群集的三种分类 1.4.1 负载均衡群集 1.4.2 高可用群集 1.4.3 高性能 ...

最新文章

  1. python语言只采用解释一种翻译方式对吗_python-guide翻译
  2. 使用多个JFrame:好的还是不好的做法? [关闭]
  3. 目标检测评价指标mAP计算
  4. 【深度学习】神经网络中几个常用的求导公式
  5. PHP7+Swoole/Nginx/Golang性能对比
  6. linux 防火墙配置与REJECT导致没有生效问题
  7. 6月共处理钓鱼网站8186个:非CN域名达8029个
  8. 7年专科生程序员同时去腾讯和微软面试,问HR结果以为听错了,结局反转!!
  9. 拟合方程是什么matlab,matlab离散型数据拟合方程,求系数,哪个大神能说说方法...
  10. 最简单的基于DirectShow的示例:获取Filter信息
  11. 用户体验与可用性测试
  12. 【Hexo】hexo在文章中添加图片
  13. 操作系统 实时调度
  14. mars java创业_Mars-java
  15. Papi酱: 左手奶瓶右手尿布× 左手papitube右手娱乐圈√
  16. 解决 ERROR: Could not find a version that satisfies the requirement 的一种思路
  17. 抖音可以传多长的视频?
  18. php amr格式转换,php 微信amr转mp3的方法
  19. 计算机设置共享时出现无法保存,win7共享打印机时提示无法保存打印机设置怎么办...
  20. codeforces1395D 贪心

热门文章

  1. pandas 空字符串与na区别_python从安装到数据分析应用高手 Pandas处理文本数据(一)...
  2. lrzsz linux 安装目录,Linux下lrzsz软件的安装与使用
  3. APUE 12.7 取消选项
  4. SaltStack 部署案例 02
  5. 3-JAVA中的JSON操作
  6. C#和java的语法区别
  7. python安装xlrd和xlwt及应用
  8. .net中C#代码与javaScript函数的相互调用问题
  9. table表格表头不懂,内容y轴滚动
  10. 诗与远方:无题(七十三)