Nginx加多个tomcat实现负载均衡,动静分离

一:Nginx+Tomcat的动静分离

所谓动静分离就是通过nginx(或apache等)来处理用户端请求的图片、html等静态的文件,tomcat(或weblogic)处理jsp、do等动态文件,从而达到动静页面访问时通过不同的容器来处理。

nginx处理静态页面效率远高于tomcat,而tomcat擅长动态页面处理,这样一来就能更好的提高并发,处理性能。

页面压力测试

ab -n 1000 -c 200 http://10.10.54.157/index.html

二:具体步骤

//环境介绍

?


1

2

3

4

5

6

7

8

9

10

11

1.主机

centos6.4 IP:10.10.54.157

2.在此主机上安装nginx,及两个tomcat,nginx的反向代理功能可以把用户请求负载到tomcat上

nginx使用80端口,两个tomcat分别使用8080,9080端口

目的:当访问10.10.54.157这台服务器时,静态页面由nginx处理,动态页面由tomcat处理

3.软件下载

wget http://nginx.org/download/nginx-1.4.5.tar.gz

wget http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm    #jdk提供tomcat运行环境

wget http://apache.dataguru.cn/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz

//安装nginx,并配置nginx支持php

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#nginx使用fpm的方式调用php

#php5.4以后版本中已经支持php-fpm,所以只需要在php编译参数里指定--enable-fpm即可

1.编译安装

shell> yum  -y install zlib-devel pcre-devel openssl-devel    #nginx依赖包

shell> tar xvf nginx-1.4.5.tar.gz

shell> cd nginx-1.4.5

shell> ./configure --prefix=/usr/local/nginx --with-pcre --with-http_stub_status_module --user=apache --group=apache --with-http_ssl_module --with-http_gzip_static_module

shell> make && make install

2.启动nginx

shell> /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

##添加nginx支持php

3.首先为php创建配置文件 

shell> cp php.ini-production /usr/local/php/php.ini    

shell> mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf    

shell> ln -s /usr/local/php/bin/php /usr/bin/

  

4.配置php-fpm.conf    

shell> vi /usr/local/php/etc/php-fpm.conf    

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

listen = /var/run/php-fpm.sock   # 使用unix socket    

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

5.启动php-fpm    

shell> /usr/local/php/sbin/php-fpm

//安装JDK

?


1

2

3

4

5

6

7

8

9

10

11

shell> rpm -ivh jdk-7u51-linux-x64.rpm

shell> vi /etc/profile

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

export JAVA_HOME="/usr/java/jdk1.7.0_51"

export CLASSPATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

export PATH="$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOME/bin"

CATALINA_HOME="/usr/local/tomcat"

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

shell> source /etc/profile

shell> java -version  #显示版本说明成功

java version"1.7.0_45"

//安装多个tomcat

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

1.解压

shell> tar xvf apache-tomcat-7.0.52.tar.gz 

shell> cp apache-tomcat-7.0.52 /usr/local/tomcat1

shell> cp apache-tomcat-7.0.52 /usr/local/tomcat2

shell> chown apache.apache /usr/local/tomcat1

shell> chown apache.apache /usr/local/tomcat2

【tomcat1 and tomcat2】

2.制作tomcat启动脚本

shell> cp catalina.sh /etc/init.d/tomcat1

shell> chmod +x /etc/init.d/tomcat1

shell> vim /etc/init.d/tomcat1

shell> chkconfig --add tomcat1

【tomcat1 and tomcat2】

3.tomcat配置用户管理(可以不设置)

shell>cd /usr/local/tomcat1/conf

shell> vim tomcat-users.xml 

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

  <role rolename="manager-gui"/>

  <role rolename="admin-gui"/>

  <user username="tomcat" password="tomcat" roles="admin-gui,manager-gui"/>   

#用户名和密码都为tomcat

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

【tomcat1 and tomcat2】

4.重启tomcat

shell> /etc/init.d/tomcat stop

shell> /etc/init.d/tomcat start

//配置nginx.conf实现负载均衡,动静分离

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

shell> vim /usr/local/nginx/conf/nginx.conf

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

user  apache apache;    #用户,tomcat默认首页也要改为apache用户

worker_processes  2;

#error_log  logs/error_nginx.log;

pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

http   

{  

          include       mime.types;  

          default_type  application/octet-stream;       

          server_names_hash_bucket_size 128;  

          client_header_buffer_size 32k;  

          large_client_header_buffers 4 32k;  

          client_max_body_size 8m;  

          sendfile on;  

          keepalive_timeout 60;  

          gzip on;  

 

#负载均衡

upstream www_zijian_com {

          server localhost:8080 max_fails=3 weight=1 fail_timeout=60s;

          server localhost:9080 max_fails=3 weight=1 fail_timeout=60s;

        }

        

server

  {

         listen       80;

         server_name  www.zijian.com;            

         index index.jsp index.php index.do index.jsp;

         access_log  logs/www.zijian.com_access_nginx.log;

         error_log logs/www.zijian.com_error.log;

         root  /var/www/nginx;    #nginx默认根目录

    location ~ \.(php|php5)$ {        #支持php

            fastcgi_pass  unix:/var/run/php-fpm.sock;    #php-fpm.sock模块

            fastcgi_index index.php;

            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

            include fastcgi_params;

            include fastcgi.conf;

            }

    location ~ \.(jsp|do)$ {        #jsp,do等页面交由tomcat处理

            proxy_pass http://www_zijian_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;

            }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

            expires      30d;

            }

}

}

//测试

1.浏览器访问10.10.54.157 默认显示nginx根目录下的index.php页面

2.浏览器访问10.10.54.157/index.jsp 浏览器跳转到tomcat默认首页,在首页点击Server Status页面,并刷新浏览器,可以看到页面在两个tomcat之间切换

时间: 2024-08-04 15:08:12

Nginx加多个tomcat实现负载均衡,动静分离的相关文章

Nginx+Tomcat配置负载均衡-动静分离(二)

配置动静分离的时候遇到了一些问题,一个是配置nginx配置文件有问题导致访问不到服务器,另一个问题是配置静态资源的路径和实际的资源目录不匹配导致404,502等错误 结合上一篇的基础,在此将动静分离的配置文件主要部分做一说明,为日后参考. 1 #user nobody; 2 worker_processes 1; 3 4 #error_log logs/error.log; 5 #error_log logs/error.log notice; 6 #error_log logs/error.l

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

HAproxy负载均衡动静分离实现及配置详解

 HAproxy负载均衡动静分离实现及配置详解 HAproxy的介绍 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群

额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepalived实现的HA(High Available).为什么要实现高可用呢?曾经在搭建的时候仅仅用了一台Nginxserver,这种话假设Nginxserver宕机了,那么整个站点就会挂掉.所以要实现Nginx的高可用,一台挂掉还会有还有一台顶上去.从而保证站点能够持续的提供服务. 关于负载均衡和动静

nginx+tomcat负载均衡+动静分离

1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_processes 8; pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 102400; events { use epoll; worker_connections 102400; } http { include mime.types; default

nginx+apache实现负载均衡+动静分离配置(编译安装)

一.编译安装nginx cd /usr/local/src wget http://nginx.org/download/nginx-1.6.3.tar.gz tar -zxvf nginx-1.6.3.tar.gz cd nginx-1.6.3 ./configure --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_image_filter_module --with-http_sub_m

nginx配置优化+负载均衡+动静分离详解

nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志最少/var/log目录是linux下的日志存放目录error_log /var/log/nginx/nginx_error.log crit;#指定进程id的存储位置pid /var/run/nginx.pid;#绑定worker进程和CPU,linux内核2.4以上可用wor

[转] nginx配置优化+负载均衡+动静分离(附带参数解析)

#指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes  8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志最少/var/log目录是linux下的日志存放目录error_log /var/log/nginx/nginx_error.log crit;#指定进程id的存储位置pid   /var/run/nginx.pid;#绑定worker进程和CPU,linux内核2.4以上可用worker_rlim