目录
现在服务器都往云方向发展,公司新配服务器全部为电信云服务器,系统为centos7,故而linux服务器配置也越来越多
跟着公司大牛学习,也来记录下安装配置经验
因为公司云服务器只对外开放了9090~9098这几个特定的端口,所以采用apache 监听这些端口并转发到相应的tomcat,实现软负载均衡
以下将主要涉及:apache服务器安装,tomcat安装配置脚本启动,tomcat-connectors,以及tomcat-native安装(OpenSSL升级),apache以及tomcat配置实现多端口监听以及集群负载
服务器环境: 三台centos7服务器,其中一台拥有公网ip:220.190.*.* ,另外两台处于内网,分别为:172.30.1.17,172.30.1.18 。
在公网220.190.*.*服务器上安装apache作为WEB入口,在172.30.1.17,172.30.1.18两台内网服务器上安装tomcat负责实际的业务处理。
一Apache安装
下载安装依赖软件如下
apr-1.5.2.tar.gzapr-util-1.5.4.tar.gz
apr-iconv-1.2.1.tar.gz
pcre-8.39.tar.gz
软件安装必须按以上顺序安装,可到apache官网 http://apr.apache.org/download.cgi 下载
依次编译安装
解压apr-1.5.2命令
[root@localhost ~]# tar zxvf apr-1.5.2.tar.gz
切换解压目录
[root@localhost ~]# cd apr-1.5.2
脚本编译配置指定安装目录
[root@localhost apr-1.5.2]# ./configure --prefix=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压apr-util-1.5.4命令
[root@localhost ~]# tar zxvf apr-util-1.5.4.tar.gz
切换解压目录
[root@localhost ~]# cd apr-util-1.5.4
脚本编译配置指定安装目录
[root@localhost apr-util-1.5.4]# ./configure --prefix=/opt/servers/common64 --with-apr=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压apr-iconv-1.2.1命令
[root@localhost ~]# tar zxvf apr-iconv-1.2.1.tar.gz
切换解压目录
[root@localhost ~]# cd apr-iconv-1.2.1
脚本编译配置指定安装目录
[root@localhost apr-iconv-1.2.1]# ./configure --prefix=/opt/servers/common64 --with-apr=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压pcre-8.39命令
[root@localhost ~]# tar zxvf pcre-8.39.tar.gz
切换解压目录
[root@localhost ~]# cd pcre-8.39
脚本编译配置指定安装目录
[root@localhost pcre-8.39]# ./configure --prefix=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
[root@localhost ~]# tar zxvf apr-1.5.2.tar.gz
切换解压目录
[root@localhost ~]# cd apr-1.5.2
脚本编译配置指定安装目录
[root@localhost apr-1.5.2]# ./configure --prefix=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压apr-util-1.5.4命令
[root@localhost ~]# tar zxvf apr-util-1.5.4.tar.gz
切换解压目录
[root@localhost ~]# cd apr-util-1.5.4
脚本编译配置指定安装目录
[root@localhost apr-util-1.5.4]# ./configure --prefix=/opt/servers/common64 --with-apr=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压apr-iconv-1.2.1命令
[root@localhost ~]# tar zxvf apr-iconv-1.2.1.tar.gz
切换解压目录
[root@localhost ~]# cd apr-iconv-1.2.1
脚本编译配置指定安装目录
[root@localhost apr-iconv-1.2.1]# ./configure --prefix=/opt/servers/common64 --with-apr=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
解压pcre-8.39命令
[root@localhost ~]# tar zxvf pcre-8.39.tar.gz
切换解压目录
[root@localhost ~]# cd pcre-8.39
脚本编译配置指定安装目录
[root@localhost pcre-8.39]# ./configure --prefix=/opt/servers/common64
脚本编译校验
[root@localhost ~]# make
脚本编译安装
[root@localhost ~]# make install
以上安装完成后开始安装apache
apache-http2.4.x编译安装配置
下载
[root@localhost ~]# wget http://apache.fayea.com/httpd/httpd-2.4.23.tar.gz
[root@localhost ~]# tar -zxvf httpd-2.4.23.tar.gz
[root@localhost ~]# cd httpd-2.4.23
编译安装
[root@localhost ~]# ./configure --prefix=/opt/servers/httpd24 \
--enable-mpms-shared=all \
--with-pcre=/opt/servers/common64 \
--enable-mods-shared=all \
--enable-ssl \
--with-ssl=yes \
--with-apr=/opt/servers/common64 \
--with-apr-util=/opt/servers/common64 \
--with-crypto
[root@localhost ~]# make
[root@localhost ~]# make install
3 添加httpd服务
将apachectl文件copy一分到/etc/rc.d/init.d中
[root@localhost ~]# cp /opt/servers/httpd24/bin/apachectl /etc/init.d/httpd
添加httpd服务
[root@localhost ~]# chkconfig --add httpd
可能会提示httpd服务不支持chkconfig,需要编辑/etc/rc.d/init.d/httpd文件,添加以下注释信息:
#chkconfig: 2345 10 90
#description: Activates/Deactivates Apache Web Server
然后执行:
[root@localhost ~]# chkconfig --add httpd
修改/opt/servers/httpd24/conf/里面的httpd.conf,
[root@localhost ~]# vi /opt/servers/httpd24/conf/httpd.conf
将ServerName www.example.com:80 修改为
ServerName 本机ip
所以改为 ServerName 220.190.*.*
保存后启动httpd
[root@localhost ~]# service httpd start
访问220.190.*.* ,出现it works 页面,表示apache启动成功。
二 tomcat 安装
1 下载 apache-tomcat-7.0.70.tar.gz
[root@localhost local]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
[root@localhost local]# tar -zxvf apache-tomcat-7.0.70.tar.gz
[root@localhost local]# cp -r apache-tomcat-7.0.70 /opt/servers/
[root@localhost local]# cd /opt/servers/
[root@localhost servers]# mv apache-tomcat-7.0.70/ apache-tomcat-7.0.70-ts1
[root@localhost servers]# ln -s apache-tomcat-7.0.70-ts1 tomcat-ts1
安装多个tomcat,只需要将apache-tomcat-7.0.70复制多份,并取不同的文件夹名,比如 apache-tomcat-7.0.70-ts1 ,apache-tomcat-7.0.70-ts2等,这里使用ln -s apache-tomcat-7.0.70-ts1 tomcat-ts1为每个tomcat建立软链接
更改tomcat的server.xml配置文件,为每个tomcat指定不同的端口号
2 tomcat配置服务启动
每次启动需要到/opt/servers/tomcat-ts1/bin/ 下面执行startup.sh ,比较麻烦,因此将tomcat加入配置成服务启动
首先为tomcat配置pid
编辑bin/catalina.sh
[root@localhost servers]# vi /opt/servers/tomcat-ts1/bin/catalina.sh
在 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME" 这行下面,增加一行CATALINA_PID="$CATALINA_BASE/tomcat.pid" ,如下
# Copy CATALINA_BASE from CATALINA_HOME if not already set
[ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
# 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
然后新建tomcat.service文件
在/usr/lib/systemd/system/ 路径下,新建tomcat-ts1.service文件(多个tomcat则新建多个.service文件,如tomcat-ts1.service,tomcat-ts2.service)
[root@localhost servers]# vi/usr/lib/systemd/system/tomcat-ts1.service
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_101"
PIDFile=/opt/servers/apache-tomcat-7.0.70-ts1/tomcat.pid
ExecStart=/opt/servers/apache-tomcat-7.0.70-ts1/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
注意jdk的路径和tomcat的路径
保存后执行下面的命令使其生效
[root@localhost servers]# systemctl daemon-reload
然后启动tomcat-ts1 ,
[root@localhost servers]# service tomcat-ts1 start
查看tomcat-ts1状态
[root@localhost system]# systemctl status tomcat-ts1
提示如下:
● tomcat-ts1.service - Tomcat
Loaded: loaded (/usr/lib/systemd/system/tomcat-ts1.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2016-08-18 22:46:16 CST; 9s ago
Process: 60340 ExecStart=/opt/server/apache-tomcat-7.0.70-1/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 60351 (java)
CGroup: /system.slice/tomcat-ts1.service
└─60351 /usr/java/jdk1.8.0_101/bin/java -Djava.util.logging.config.file=/opt/server/apache-tomcat-7.0.70-1/conf/logging.properties -Djava.util.logging.man...
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using CATALINA_BASE: /opt/server/apache-tomcat-7.0.70-1
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using CATALINA_HOME: /opt/server/apache-tomcat-7.0.70-1
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using CATALINA_TMPDIR: /opt/server/apache-tomcat-7.0.70-1/temp
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using JRE_HOME: /usr/java/jdk1.8.0_101
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using CLASSPATH: /opt/server/apache-tomcat-7.0.70-1/bin/bootstrap.jar:/opt/server/apache-tomc...juli.jar
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Using CATALINA_PID: /opt/server/apache-tomcat-7.0.70-1/tomcat.pid
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Existing PID file found during start.
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Removing/clearing stale PID file.
8月 18 22:46:16 localhost.localdomain startup.sh[60340]: Tomcat started.
8月 18 22:46:16 localhost.localdomain systemd[1]: Started Tomcat.
Hint: Some lines were ellipsized, use -l to show in full.
tomcat启动成功。
如果是在虚拟机环境下操作,通过 虚拟机ip:8080 访问tomcat ,还需关闭centos7自带的firewall防火墙,或者放通相应端口。
三 安装 tomcat-connectors
下载
[root@localhost local]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
解压
[root@localhost local]# tar -zxvf tomcat-connectors-1.2.41-src.tar.gz
进入 tomcat-connectors-1.2.41-src/native目录
[root@localhost local]# cd tomcat-connectors-1.2.41-src/native
编译安装,注意httpd的安装路径
[root@localhost native]# ./configure -with-apxs=/opt/servers/httpd24/bin/apxs
[root@localhost native]# make
[root@localhost native]# make install
四安装tomcat-native
下载
[root@localhost local]# wget http://apache.fayea.com/tomcat/tomcat-connectors/native/1.2.8/source/tomcat-native-1.2.8-src.tar.gz
解压
[root@localhost local]# tar -zxvf tomcat-native-1.2.8-src.tar.gz
[root@localhost local]# cd tomcat-native-1.2.8-src.tar/native
编译安装, 注意jdk的路径
[root@localhostnative]# ./configure --prefix=/opt/servers/common64/ --with-ssl=yes --with-java-home=/usr/java/jdk1.8.0_101 --with-apr=/opt/servers/common64
报错提示:configure: error: Your version of OpenSSL is not compatible with this version of tcnative
查看openssl的版本
[root@localhost native]# openssl version
提示为:
OpenSSL 1.0.1e-fips 11 Feb 2013
需要升级openssl
下载最新的openssl,编译安装
[root@localhost local]# wget https://www-origin.openssl.org/source/openssl-1.0.2h.tar.gz
[root@localhost local]# tar -zxvf openssl-1.0.2h.tar.gz
[root@localhost local]# cd openssl-1.0.2h
[root@localhost openssl-1.0.2h]# ./config shared zlib
[root@localhost openssl-1.0.2h]# make
[root@localhost openssl-1.0.2h]# make install
修改历史的OpenSSL文件设置备份
[root@localhost openssl-1.0.2h]# mv /usr/bin/openssl /usr/bin/openssl.old
[root@localhost openssl-1.0.2h]# mv /usr/include/openssl /usr/include/openssl.old
设置软连接使其使用新的OpenSSL版本 刚刚安装的OpenSSL默认安装在/usr/local/ssl
[root@localhost local]# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
[root@localhost local]# ln -s /usr/local/ssl/include/openssl /usr/include/openssl
更新动态链接库数据
[root@localhost local]# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
[root@localhost local]# ldconfig -v
查看升级后的openssl版本
[root@localhost local]# openssl version
OpenSSL 1.0.2h 3 May 2016
已升级成功。回到tomcat-native-1.2.8-src.tar/native 目录下重新编译安装
[root@localhost local]# cd /usr/local/tomcat-native-1.2.8-src/native/
[root@localhost native]# ./configure --prefix=/opt/servers/common64/ --with-ssl=yes --with-java-home=/usr/java/jdk1.8.0_101 --with-apr=/opt/servers/common64
[root@localhost native]# make
[root@localhost native]# make install
到目前为止Apache和tomcat以及连接器都已经安装成功。接下来 配置apache和tomcat实现集群负载均衡
未完待续。。。。