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之间切换
Nginx加多个tomcat实现负载均衡,动静分离的更多相关文章
- Nginx+Tomcat配置负载均衡-动静分离(二)
配置动静分离的时候遇到了一些问题,一个是配置nginx配置文件有问题导致访问不到服务器,另一个问题是配置静态资源的路径和实际的资源目录不匹配导致404,502等错误 结合上一篇的基础,在此将动静分离的 ...
- Tomcat WEB搭建+Nginx负载均衡动静分离+DNS解析的实验
实验拓扑图: 实验环境: 在VMware workstation搭建虚拟环境,利用网络适配器的Nat和桥接模式模拟内网和外网环境. 实验过程中需要安装的工具包包括:vim unzip lrzsz ls ...
- nginx+tomcat负载均衡+动静分离+redis集中管理session
1.服务器A安装ng,服务器B.C安装tomcat: 2.服务器A建立/data/www目录,用于发布静态文件: 3.ng无动静分离配置: user root root; worker_process ...
- Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术
一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判 ...
- 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群
额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...
- LVS负载均衡+动静分离+高可用(nginx+tomcat+keepalived)
文章目录 [隐藏] 一.环境介绍 二.环境安装 1.安装JDK 2.两台服务器安装tomcat 3.nginx安装 4.keepalive安装 三.负载均衡 四.动静分离 五.keepalive高可用 ...
- nginx配置优化+负载均衡+动静分离详解
nginx配置如下: #指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细 ...
- [转] nginx配置优化+负载均衡+动静分离(附带参数解析)
#指定nginx进程运行用户以及用户组user www www;#nginx要开启的进程数为8worker_processes 8;#全局错误日志文件#debug输出日志最为详细,而crit输出日志 ...
- Haproxy负载均衡/动静分离(haproxy各选项详细解释)
在前端领域做负载均衡,动静分离的程序有很多,比较常用的是nginx和Haproxy,今天就说一下 Haproxy在这两方面的表现,文章参考很多网文写成,再加上自己的实验成果,文中所有解释都经过实际环境 ...
随机推荐
- Java盲点:双重检查锁定及单例模式
尊重原创: http://gstarwd.iteye.com/blog/692937 2004 年 5 月 01 日 所有的编程语言都有一些共用的习语.了解和使用一些习语很有用,程序员们花费宝贵的时间 ...
- 8.21 usaco
summary:6 bzoj1692://后缀数组就行了O(nlogn)c[30]会RE...注意!!! #include<cstdio> #include<cstring> ...
- I.MX6 android BatteryService jni hacking
/**************************************************************************** * I.MX6 android Batter ...
- ubuntu 11.10 (64bit) install opencv 2.4.8 and run in Qtcreator
install gtk2+ sudo apt-get install libgtk2.0*sudo apt-get install cmake-qt-gui tar xzvf opencv-2.4.8 ...
- .Net高级技术
本次课程中讲的有的东西都是根据初学者的认知规律进行了调整,并不是严谨的,比如很多地方在多AppDomain条件下很多说法就不对了,但是说严谨了大家就晕了,因此继续不严谨的讲吧. 很多面试题都在这阶段的 ...
- O(1)时间删除链表的已知结点
这题并不需要从头结点遍历到已知结点,只需要知道已知结点,将改结点下一个结点赋值给它,再删除这个下一个结点就行,其中还需要考虑各种情况. 1)链表为空或者已知结点为空 2)链表只有一个结点,这个结点就是 ...
- 【转载】strlen与sizeof区别
自己小结: sizeof使用时,若是数组变量,则是数组变量占的大小 char a[10]; sizeof(a)=10 若是指针,则为指针大小,数组变量作为函数参数传递时,会退化成指针,且函数内是不知道 ...
- Polymorphism
多态定义(百度百科):多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述 ——多态性是允 ...
- HDU-4671 Backup Plan 构造解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4671 假设是3 m,首先按照第一列按照1 2 3 1 2 3 1...排下去,然后个数就是一个 (m/ ...
- FFmpeg YUV视频序列编码为视频
上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码.搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频.关于Y ...