`
g21121
  • 浏览: 685595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux下安装Haproxy、Nginx、Tomcat、Keepalived

阅读更多

        首先介绍一下环境:

        1)两台服务器(条件有限),IP分别为:192.168.40.128(server1真实IP),192.168.40.129(server2真实IP),192.168.40.200(虚拟IP)。

        2)两台服务器上分别安装Tomcat,HAProxy、Keepalived

        3)两台服务器上的HAProxy 互为热备。

        4)两台服务器上的Tomcat 是真正的内容提供方。

        5)安装过程以server1(192.168.40.128)为例,JDK我就不示范安装了。

        本文所提到的所有软件均可以到这个网址下载:https://fossies.org/linux/misc/

 

        1.防火墙配置

        1)查看状态

iptables -L -n

        2)添加开放端口

        使用iptables 开放如下端口

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

        3)保存

/etc/rc.d/init.d/iptables save

        4)重启服务

service iptables restart

        5)查看需要打开的端口是否生效

/etc/init.d/iptables status

 

 

        2.Tomcat

        Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

        1)安装

# cd /usr/local/software
# tar -zxvf apache-tomcat-8.5.30.tar.gz
# mv apache-tomcat-8.5.30 /usr/local/tomcat/

        2)配置

        删除 /usr/local/tomcat/webapps/ 下所有文件

        编写index.jsp文件:

vim /usr/local/tomcat/webapps/ROOT/index.jsp
#输入以下内容:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Server Info</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<%
String SERVER_NAME = request.getServerName();
String SERVER_ADDR = request.getLocalAddr();
String SERVER_SOFTWARE = getServletContext().getServerInfo();
String SERVER_PROTOCOL = request.getProtocol();
Integer SERVER_PORT = request.getServerPort();
String REQUEST_METHOD = request.getMethod();
String PATH_INFO = request.getPathInfo();
String PATH_TRANSLATED = request.getPathTranslated();
String SCRIPT_NAME = request.getServletPath();
String DOCUMENT_ROOT = request.getRealPath("/");
String QUERY_STRING = request.getQueryString();
String REMOTE_HOST = request.getRemoteHost();
String REMOTE_ADDR = request.getRemoteAddr();
String AUTH_TYPE = request.getAuthType();
String REMOTE_USER = request.getRemoteUser();
String CONTENT_TYPE = request.getContentType();
Integer CONTENT_LENGTH = request.getContentLength();
String HTTP_ACCEPT = request.getHeader("Accept");
String HTTP_USER_AGENT = request.getHeader("User-Agent");
String HTTP_REFERER = request.getHeader("Referer");
HashMap infoMap = new HashMap();
infoMap.put("SERVER_NAME", SERVER_NAME);
infoMap.put("SERVER_ADDR", SERVER_ADDR);
infoMap.put("SERVER_SOFTWARE", SERVER_SOFTWARE);
infoMap.put("SERVER_PROTOCOL", SERVER_PROTOCOL);
infoMap.put("SERVER_PORT", SERVER_PORT);
infoMap.put("REQUEST_METHOD", REQUEST_METHOD);
infoMap.put("SCRIPT_NAME", SCRIPT_NAME);
infoMap.put("DOCUMENT_ROOT", DOCUMENT_ROOT);
infoMap.put("REMOTE_HOST", REMOTE_HOST);
infoMap.put("REMOTE_ADDR", REMOTE_ADDR);
infoMap.put("CONTENT_TYPE", CONTENT_TYPE);
infoMap.put("CONTENT_LENGTH", CONTENT_LENGTH);
infoMap.put("HTTP_ACCEPT", HTTP_ACCEPT);
infoMap.put("HTTP_USER_AGENT", HTTP_USER_AGENT);
Iterator it = infoMap.keySet().iterator();
%>
<table border="1">
<%
while (it.hasNext()) {
Object o = it.next();
%>
<tr>
<td><%=o%></td>
<td><%=infoMap.get(o)%></td>
</tr>
<%}%>
</table>
</body>
</html>

        3)启动

        tomcat/bin 下是Tomcat的相关执行脚本,启动脚本为startup.sh,执行以下命令启动和关闭tomcat:

#启动
/usr/local/tomcat/bin/startup.sh
#关闭
/usr/local/tomcat/bin/shutdown.sh

        4)验证

        打开浏览器输入:http://192.168.40.128:8080/,显示如下页面说明启动成功:

        另一台tomcat也是同样的操作步骤,这里就不赘述了。 

 


        3.HAProxy

        HAProxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP 和HTTP 的应用程序代理。

        HAProxy特别适用于那些负载特大的web 站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在 当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web 服务器不被暴露到网络上。

        1)安装

#解压
tar -zxvf haproxy-1.6.9.tar.gz
cd haproxy-1.6.9
#安装
make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

        参数说明:

        TARGET=linux2628:内核版本,使用uname -r查看内核版本。如:2.6.32-431.el6.x86_64,此时该参数就为"linux26";大于2.6.28的用"TARGET=linux2628"。

        ARCH=x86_64:系统位数。

        PREFIX=/usr/local/haprpxy:HAProxy安装路径。

        2)配置

        创建HAProxy配置文件:

# mkdir /etc/haproxy
# vim /etc/haproxy/haproxy.cfg
#输入以下配置信息:
global
    log 127.0.0.1 local0
    maxconn 40960
    chroot /usr/local/haproxy
    uid 99
    gid 99
    daemon
    nbproc 1
    pidfile /var/run/haproxy.pid

defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    option redispatch
    maxconn 20480
     timeout connect    30s
    timeout client     60s
    timeout server     60s
    
listen web
    bind :80
    mode http
    balance roundrobin
    stats uri /haproxy-stats
    stats refresh 10s
    stats realm Haproxy\ statistics
    stats auth admin:admin
    option httpchk HEAD /index.jsp
    server web1 192.168.40.128:8080 weight 1 maxconn 10000 check inter 3s rise 3 fall 3
    server web2 192.168.40.129:8080 weight 1 maxconn 10000 check inter 3s rise 3 fall 3

        3)创建haproxy 服务

#链接haproxy 执行文件
ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/
#复制安装包内的haproxy 启动脚本,haproxy的examples文件夹下有很多实例,大家可以参考和直接使用
cp /usr/local/software/haproxy-1.8.8/examples/haproxy.init /etc/rc.d/init.d/haproxy
#赋予执行权限
chmod +x /etc/init.d/haproxy

        4)启动

        运行以下命令,启动HAProxy:

# service haproxy start
Starting haproxy:                                          [  OK  ]

        4)验证

        在浏览器中输入:http://192.168.40.128/,并且每次刷新都会显示不同的页面就证明HAProxy也启动成功了。

 

        在浏览器中继续输入:http://192.168.40.128/haproxy-stats,页面将会显示HAProxy的监控页:

        同样的,另一个服务器也是按此步骤安装haproxy。

        之后我们就要开始安装Keepalived了,在此之前我们先来看一下此时我们环境中的网络拓扑图:



 

 

        4.Keepalived

        Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

        1)安装

安装Keepalived之前一般需要安装openssl-devel ,运行以下命令进行安装:

# yum -y install openssl-devel

然后正式开始安装Keepalived:

# tar -zxvf keepalived-1.4.3.tar.gz
# cd keepalived-1.4.3
# ./configure --prefix=/usr/local/keepalived
# make
# make install 

        2)配置

        修改默认的keepalived 配置文件:

# mkdir /etc/keepalived
# vim /etc/keepalived/keepalived.conf
# 添加以下内容
global_defs {
   notification_email {
     86312031@qq.com
   }
   notification_email_from root@localhost.localdomain
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_http_port {
    script "/etc/keepalived/check.sh"
    interval 3
    weight 2
  }
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 56
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script {
    chk_http_port
  }
unicast_src_ip 192.168.40.128
unicast_peer {   
 192.168.40.129
}
 virtual_ipaddress {
        192.168.40.200/24 dev eth0
    }

}

        其中check.sh 是一个检测脚本,内容非常简单,就是判断haproxy与keepalived是否存活,如出现问题则重启相关组件,以下是check.sh的源代码:

#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l ) -eq 0 ]; then
    service haproxy start
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l ) -eq 0 ]; then
    service keepalived stop
fi
~                                                      

        然后配置启动文件:

##/usr/local/software/keepalived-1.4.3是Keepalived安装包的解压地址
# cp /usr/local/software/keepalived-1.4.3/keepalived/etc/init.d/keepalived /etc/rc.d/init.d/keepalived
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived
# chmod +x /etc/init.d/keepalived
# ln -s /usr/local/keepalived/sbin/keepalived /usr/bin/

        3)启动

# service keepalived start

        4)验证

        在浏览器中输入配置的虚拟IP地址,如果显示正常,说明Keepalived已经成功启动。

  • 大小: 31.9 KB
  • 大小: 32.2 KB
  • 大小: 52.2 KB
  • 大小: 30.1 KB
  • 大小: 32 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics