CentOS+Nginx+Tomcat集群及负载均衡

前两天申请了一台免费腾讯云服务器,只有5天时间,不知道该怎么用呢,后来想到自己用来学习搭建一个nginx+tomcat集群测试吧,正好自己也有一个域名,就绑定到这台云服务器上的IP地址。好了,言归正传,我把自己的安装过程记下笔记。

一.安装Nginx

安装正则

yum -y install pcre*

安装openssl

yum -y install openssl*

下载nginx

wgethttp://nginx.org/download/nginx-1.7.8.tar.gz

解压缩

tar -zxvf nginx-1.7.8.tar.gz

配置,注意/usr/local/nginx必须存在

./configure --prefix=/usr/local/nginx--with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module--with-pcre

编译

make

安装

make install

检查nginx是否正确安装

cd /usr/local/nginx/sbin

./nginx -t

nginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file/usr/local/nginx/conf/nginx.conf test is successful

启动

/usr/local/nginx-1.7.8/sbin/nginx

访问


二.Tomcat安装。
    Tomcat的下载安装就不再赘述了,大家都懂的。
Tomcat安装两个,分别是
tomcat-A   127.0.0.1:8080
tomcat-B   127.0.0.1:9080
编写一个home.html文件,放在tomcat-A/webapps/ROOT目录里,内容如下:

<html>
  <head>
    <title>tomcat负载均衡</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
  </head>
  <body>
		<h1>这是个测试页面,现在请求的页面在tomcat-A</h1>
  </body>
</html>

再编写一个home.html文件,放在tomcat-B/webapps/ROOT目录里,内容如下:

<html>
  <head>
    <title>tomcat负载均衡</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'>
  </head>
  <body>
		<h1>这是个测试页面,现在请求的页面在tomcat-B</h1>
  </body>
</html>

访问tomcat-A


访问tomcat-B


两个tomcat正常运行。

 

三.集群和负载均衡配置

现在配置负载均衡

修改配置文件

cd /usr/local/nginx/conf

vi nginx.conf

在http里增加,这是负载均衡配置

   upstream www {
	    ip_hash;
    	   server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
	    server 127.0.0.1:9080 weight=1 max_fails=2 fail_timeout=30s;
}

说明:

ip_hash是根据ip进行hash值分发,同一个ip客户端只分发到一个tomcat里。

weight 权重:分发的数量比重

在server里增加

   location / {  
    	    proxy_next_upstream http_502 http_504 error timeout invalid_header;
   	    proxy_set_header Host  $host;
    	    proxy_set_header X-Real-IP $remote_addr;
    	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   	    proxy_pass http://www;
    	    expires      3d;
	    }
整个配置文件如下:

#user  nobody;
worker_processes  2;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;

events {
    use epoll;
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;
    upstream www {
	    ip_hash;
    	server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
	    server 127.0.0.1:9080 weight=1 max_fails=2 fail_timeout=30s;
    }

    server {
        listen       80;
        server_name  localhost;
        root   html;
        index  index.html index.htm;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {  
    			proxy_next_upstream http_502 http_504 error timeout invalid_header;
   	        proxy_set_header Host  $host;
    			proxy_set_header X-Real-IP $remote_addr;
    			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   	        proxy_pass http://www;
    			expires      3d;
	    } 

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
重新加载配置文件
/usr/local/nginx-1.7.8/sbin/nginx –s reload
启动
/usr/local/nginx-1.7.8/sbin/nginx
本机访问

本机访问的是tomcat-B,由于该机没有ui,所以只能使用curl命令测试

在客户端(自己的电脑)访问

这个访问的是tomcat-A,不管你怎么刷新浏览器都是访问tomcat-A

测试故障转移
把tomcat-A kill

再刷新客户端时,则访问tomcat-B

再启动tomcat-A
/usr/local/tomcat-A/bin/startup.sh

再刷新客户端,又访问tomcat-A了。


至此,完。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值