linux环境下整合nginx1.8.0和tomcat7负载均衡配置

一   jdk安装

二  nginx安装

wget http: //nginx .org /download/nginx-1 .8.0. tar .gz
 
//useradd db 此处用户负载均衡时的用户控制,可提前添加
 
1  tar  zxvf nginx-1.8.0. tar .gz
 
2  cd  nginx-1.8.0/
 
3  . /configure  --user=www --group=www --prefix= /usr/local/nginx  --with-http_stub_status_module --with-http_ssl_module

这步可能报错,参考以下进行解决

在配置信息的时候,也就是在第三步,出现了一下错误:

错误为:./configure: error: the HTTP rewrite module requires the PCRE library.

安装pcre-devel解决问题
yum -y install pcre-devel

还有可能出现:

错误提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library.   You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.


解决办法:

yum -y install openssl openssl-devel


 
4   make  &&  make  install

#Nginx安装完毕,然后使用命令:/usr/local/nginx/sbin/nginx -t 测试OK,代表nginx安装成功。
 
接着执行  /usr/local/nginx/sbin/nginx  回车启动nginx,可以通过访问http: //ip/ 看到nginx默认页面。


三 tomcat安装

  下载apache-tomcat-7.0.75.tar.gz

   tar zxvf  apache-tomcat-7.0.75.tar.gz 分别到两个目录 /usr/local/tomcat1 /usr/local/tomcat2


#分别修改tomcat1和tomcat2 端口,这里有三个端口需要修改,分别如下:
 
shutdown  端口:8005  主要负责启动关闭.
 
ajp端口:8009 主要负责通过ajp均衡(常用于apache和tomcat整合)
 
http端口:8080 可以通过web页面直接访问(nginx+tomcata整合)
 
#注* 如果tomcat1三个端口分别为:8005 8009 8080 ,那么tomcat2端口在此基础上都+1,即为:8006 8010 8081
 
#一台服务器上,端口不能重复,否则会报错。
 
#修改完端口后,然后启动两个tomcat,启动命令为:
 
#如何提示没有这个文件或者权限不足,需要tomcat 的bin目录对sh文件赋予执行权限:chmod o+x   *.sh


同时修改tomcat1和tomcat2 下的webapp目录下的ROOT目录下的index.html 用于区分tomcat1和tomcat2

/usr/local/tomcat1/bin/startup .sh
 
/usr/local/tomcat2/bin/startup .sh
 
#启动后,使用netstat -tnl 可以看到6个端口,即代表tomcat1 tomcat2成功启动。你可以使用http://ip:8080  http://ip:8081访问tomcat默认页面。

  #如果需要修改tomcat发布目录为自己制定的目录,需要做如下调整,创建两个发布目录:

  mkdir -p /usr/local/{pubDir1,pubDir2}

  1. 编辑vi /usr/local/tomcat1/conf/server.xml 在最后</Host>前一行加下内容:

  2. <Context  path="" docBase="/usr/local/pubDir1" reloadable="false"/>


  1. 编辑vi /usr/local/tomcat2/conf/server.xml 在最后</Host>前一行加下内容:

  2. <Context  path="" docBase="/usr/local/pubDir2" reloadable="false"/>

  

 tomcat1发布目录内容:

 在pubDir1目录下新建index.jsp文件,内容为

<html>
<body>
<h1>TOMCAT_1 JSP Test Page< /h1 >
<%=new java.util.Date()%>
< /body >
< /html >
 

 tomcat2发布目录内容:

 在pubDir2目录下新建index.jsp文件,内容为

<html>
<body>
<h1>TOMCAT_2 JSP Test Page< /h1 >
<%=new java.util.Date()%>
< /body >
< /html >
 

 然后访问http://ip:8080、8081查看测试内容。

 记得关闭服务器的防火墙

  

 正常请求下,在不同的服务器上部署相同的代码



 四 nginx配置

 Nginx1.8配置,下面的文件都不用用记事本打开,保存后可能带有BOM,这样在启动Nginx会有乱码,

 如果启动出现乱码可以使用 notepad++ 软件打开,格式中使用UTF8无BOM格式

 #Nginx所用用户和组  
 #user  db db;  
  
 #工作的子进程数量(通常等于CPU数量或者2倍于CPU)  
 worker_processes  2;  
  
 #错误日志存放路径  
 error_log  logs/error.log  info;  
  
 #指定pid存放文件  
 pid   logs/nginx.pid;  
  
 events {  
    #允许最大连接数  
    worker_connections  3048;  
 }  
  
 http {  
     include       mime.types;  
     default_type  application/octet-stream;  
  
     #access_log  off;  
     access_log  logs/access.log;  
  
     client_header_timeout  3m;  
     client_body_timeout    3m;  
     send_timeout           3m;  
   
     client_header_buffer_size    1k;  
     large_client_header_buffers  4 4k;  
  
     sendfile        on;  
     tcp_nopush      on;  
     tcp_nodelay     on;  
  
     #keepalive_timeout  75 20;  
  
     include    gzip.conf;  
     upstream localhost {  
       #ip_hash 启用表示,之后这个ip将只访问第一次访问的tomcat,session就会是同一个  
          #ip_hash;  
       #localhost因为是我本地部署,所以不同的服务器,修改成ip即可  
          server localhost:8080;  
          server localhost:8081;  
     }  
    server {  
            #这里的listen 端口号默认是80的但经常被占用,实际发布应该也是80,只要将占用80端口的应用停掉即可  
            listen       81;  
            server_name  localhost;     
  
            location / {  
                proxy_connect_timeout   3;  
                proxy_send_timeout      30;  
                proxy_read_timeout      30;  
                #proxy_pass 里访问的是 " upstream localhost  "中的localhost  
                proxy_pass http://localhost;  
            }              
   }  
}  


接着在conf目录下新建proxy.conf文件 并添加以下内容

proxy_redirect          off;  
proxy_set_header        Host $host;  
proxy_set_header        X-Real-IP $remote_addr;  
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  
client_max_body_size    10m;  
client_body_buffer_size 128k;  
proxy_connect_timeout   300;  
proxy_send_timeout      300;  
proxy_read_timeout      300;  
proxy_buffer_size       4k;  
proxy_buffers           4 32k;  
proxy_busy_buffers_size 64k;  

然后在conf目录下新建gzip.conf文件,并添加内容

gzip              on;  
gzip_min_length      1000;  
gzip_types         text/plain text/css application/x-javascript;

接着停止nginx服务

ps -ef | grep nginx

kill -9 pid(进程号)

重启nginx服务  

/usr/local/nginx/sbin/nginx

接着分别启动tomcat1和tomcat2

最后访问http://ip:81 ,不断刷新,看页面的变化

                                                                 



首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。

既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
今天我们讲的实例嘛…..我们还是先看图比较好:



还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    
复制代码

那么P1、P2、P3的配置如下:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}
复制代码

 

那么P1的配置如下:

复制代码
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P2配置:

复制代码
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P3配置:

复制代码
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢?
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}
复制代码

 

其实一切就这么简单,来赶快试试吧!

4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略



参考:http://www.cnblogs.com/oshine/p/3953259.html


nginx负载均衡配置

首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。

既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
今天我们讲的实例嘛…..我们还是先看图比较好:



还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    
复制代码

那么P1、P2、P3的配置如下:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}
复制代码

 

那么P1的配置如下:

复制代码
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P2配置:

复制代码
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P3配置:

复制代码
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢?
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}
复制代码

 

其实一切就这么简单,来赶快试试吧!

4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略



参考:http://www.cnblogs.com/oshine/p/3953259.html


nginx负载均衡配置

首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。

既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
今天我们讲的实例嘛…..我们还是先看图比较好:



还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    
复制代码

那么P1、P2、P3的配置如下:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}
复制代码

 

那么P1的配置如下:

复制代码
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P2配置:

复制代码
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P3配置:

复制代码
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢?
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}
复制代码

 

其实一切就这么简单,来赶快试试吧!

4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略



参考:http://www.cnblogs.com/oshine/p/3953259.html



其他参考:http://www.cnblogs.com/oshine/p/3953259.html

首先我们来回顾下上篇的概念: 负载均衡 == 分身的能力。

既然要有分身的能力嘛,这好办,多弄几台服务器就搞定了。
今天我们讲的实例嘛…..我们还是先看图比较好:



还是图比较清晰,以下我都用别名称呼:

  PA : 负载均衡服务器/WEB入口服务器/www.mydomain.com
  P1 : WEB服务器/分身1/192.168.2.3
  P2 : WEB服务器/分身2/192.168.2.4
  P3 : WEB服务器/分身3/192.168.2.5

 

PS:首先我们学这个的开始之前吧,不懂防火墙的童鞋们,建议你们把PA、P1、P2、P3的防火墙关闭,尽量不要引起不必要的麻烦。

首先 :PA、P1、P2、P3都安装了Nginx,不会安装的可以去官网查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 装完之后哈,我们先找到 PA 的nginx.conf配置文件:
在http段加入以下代码:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

当然嘛,这servers.mydomain.com随便取的。

那么PA的server配置如下:
在http段加入以下代码:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    
复制代码

那么P1、P2、P3的配置如下:

复制代码
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

2. 有人就问了,我用其它端口行不行啊,当然也是可以的,假设PA的nginx.conf配置文件:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}
复制代码

 

那么P1的配置如下:

复制代码
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P2配置:

复制代码
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

P3配置:

复制代码
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
复制代码

 

重启之后,我们访问下,恩不错,确实很厉害。
当我们把一台服务器给关闭了后。
访问网址,还是OK的。说明:负载均衡还要懂得修理他(T出泡妞队营)

 

3. 那么负载均衡如何保持通话呢?
当然现在有好几种方案,我们这次只是讲一种。
IP哈希策略
  优点:能较好地把同一个客户端的多次请求分配到同一台服务器处理,避免了加权轮询无法适用会话保持的需求。
  缺点:当某个时刻来自某个IP地址的请求特别多,那么将导致某台后端服务器的压力可能非常大,而其他后端服务器却空闲的不均衡情况。


要想了解更深刻的印象,这儿有篇博文,推荐可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很简单,代码如下:

复制代码
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}
复制代码

 

其实一切就这么简单,来赶快试试吧!

4. 说了这么多,其实你有没有发现一个问题的所在,就是这么多服务器,他们共同需要的文件从哪里来?
想知道如何解决,请继续关注:负载均衡 ---- 文件服务策略



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值