nginx linulinux nginx tomcatt负载均衡怎么访问

Nginx+Tomcat搭建高性能负载均衡集群
Nginx+Tomcat搭建高性能负载均衡集群。
nginx-1.8.0
apache-tomcat-6.0.33
实现高性能负载均衡的Tomcat集群:
1、首先下载Nginx,要下载稳定版:
2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:
3、然后修改这两个Tomcat的启动端口,分别为1,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml:
共需修改3处端口:
当然第二台Tomcat也一样,如下图:
4、然后启动两个Tomcat,并访问,看是否正常:
5、然后修改上面两个Tomcat的默认页面(为了区分下面到底访问的是那一台Tomcat,随便改一下即可):
改完以后,进行访问,如下图:
6、OK,现在我们可以开始配置Nginx来实现负载均衡了,其实非常的简单,只需要配置好Nginx的配置文件即可:
配置如下(这里只进行了简单的配置,实际生产环境可以进行更详细完善配置):
[html] view plain copy
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数)
include mime. #文件扩展名与文件类型映射表
default_type application/octet-#默认文件类型
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
#启用Gizp压缩
#服务器的集群
{ #服务器集群名字
server 127.0.0.1:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:28080 weight=2;
#当前的Nginx的配置
listen 80;#监听80端口,可以改成其他端口
server_############## 当前服务的域名
location / {
error_page 500 502 503 504 /50x.
location = /50x.html {
核心配置如下:
到此配置完成,下面开始演示负载均衡。
7、首先,我们启动Nginx:
8、然后我们即可输入:localhost/index.查看运行状况了
第一次访问,发现访问的是Tomcat2上的程序:
然后刷新,访问的还是Tomcat2上的程序:
再刷新,发现变为了Tomcat1上的程序:
再刷新,发现又变为了Tomcat2上的程序:
到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx中配置的两台Tomcat的权重起的作用,如下图:
谁能想到实现一个高性能的负载均衡集群会如此简单。Nginx的功能如此强大,配置却如此简单,我们还有什么理由拒绝它呢?这比我们动不动就十多万至几十万人民币的F5 BIG-IP、NetScaler等硬件负载均衡廉价了不知多少。此外,大家别忘了Nginx不仅仅是一个反向代理服务器,它本身也可以托管网站,作为Web服务器,进行Http服务处理。本文讲的是一台服务器实现运行两个Tomcat并和Nginx实现负载均衡,
为了实现服务器升级不影响用户使用,有必要配置两个tomcat在一个或多个服务器中。下面介绍在同一个服务器配置两个Tomcat的过程。
步骤如下:
1、拷贝原来的Tomcat到另外一个目录,如:tomcat-8090,清除logs目
为了实现服务器升级不影响用户使用,有必要配置两个tomcat在一个或多个服务器中。下面介绍在同一个服务器配置两个Tomcat的过程。
步骤如下:
1、拷贝原来的Tomcat到另外一个目录,如:tomcat-8090,清除logs目录
2、修改Tomcat中的server.xml文件,把shutdown和Connector端口修改成另外的数值,如
3、修改startup.sh和shutdown.sh文件,在第一行加入:
export CATALINA_HOME=/opt/app/tomcat-8090
4、启动tomcat
5、Nginx中配置负载均衡:
Nginx配置文件,添加:
upstream tomcatCluster {
server &ip&:8080 ;
server &ip&:8090 ;
server_name
&ip& &域名& ……;
index ……;
root ……;
location / {
location ~* /&项目名&/ {
proxy_pass http://tomcatC
重启Nginx:service nginx restart
6、测试请求是否被轮流转发到两个tomcat中CentOS 6.5系统下Nginx反向代理实现Tomcat负载均衡
1.查看当前系统的内核和系统参数以及版本。
[root@node1 ~]# uname -a
Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC
x86_64 x86_64 GNU/Linux
[root@node1 ~]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
2.安装nginx。
1)安装gcc编译器及相关工具和依赖库。
[root@node1 ~]# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre
2)编译安装pcre库。
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正规表达式。Pcre的作用主要是使nginx支持HTTP rewrite模块。
创建一个指定放置压缩包的目录。
[root@node1 ~]# mkdir -p /linuxidc/tools
[root@node1 ~]# cd /linuxidc/tools/
[root@node1 tools]# tar -zxf pcre-8.33.tar.gz
[root@node1 pcre-8.33]# ./configure
[root@node1 pcre-8.33]# make && make install
[root@node1 nginx-1.5.8]# ./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/data/nginx
[root@node1 nginx-1.5.8]# make && make install
注意:安装成功启动nginx,有可能会遇到下面错误,
[root@node1 nginx-1.5.8]# /data/nginx/sbin/nginx -t
/data/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
解决办法:
[root@node1 ~]# cd /lib64/
[root@node1 lib64]# ln -s libpcre.so.0.0.1 libpcre.so.1
3)此事再启动nginx,查看下进程和端口。
[root@node1 lib64]# /data/nginx/sbin/nginx -t
nginx: the configuration file /data/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data/nginx/conf/nginx.conf test is successful
[root@node1 lib64]# /data/nginx/sbin/nginx
[root@node1 lib64]# ps -ef | grep nginx
00:00:00 nginx: master process /data/nginx/sbin/nginx
00:00:00 nginx: worker process
0 16:44 pts/1
00:00:00 grep nginx
[root@node1 lib64]# netstat -anpt | grep nginx
0 0.0.0.0:80
8991/nginx
3.配置nginx web反向代理,实现两个tomcat负载均衡:
nginx配置文件如下:
[root@node1 ~]# cat /data/nginx/conf/nginx.conf
worker_processes
#error_log
logs/error.
/data/nginx/logs/nginx.
worker_rlimit_nofile 65535;
worker_connections 65535;
default_type
application/octet-
log_format
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log
logs/access.
keepalive_timeout
limit_rate_after 3m;
limit_rate 512k;
client_header_buffer_size 256k;
large_client_header_buffers 4 256k;
# Define nginx proxy module
proxy_http_version 1.1;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffer_size
proxy_buffers
proxy_busy_buffers_size
proxy_temp_file_write_size 128k;
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
# Define Gzip compression module
gzip_min_length
gzip_buffers
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types
text/plain application/x-javascript text/css application/
# Define realserver pool
server 192.168.1.15:8080
max_fails=0
server 192.168.1.19:8080
max_fails=0
server_name
linuxidc.net www.linuxidc.
location / {
proxy_set_header Host $
proxy_set_header X-Real-IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
expires 1d;
access_log
logs/host.access.
# Define 404 502 503 504 error page
error_page
error_page
500 502 503 504
location = /50x.html {
} Linux下Apache与多个Tomcat 集群负载均衡
多台电脑默认tomcat端口都是8080
每个tomcat下完全相同的部署
在此前面apache 与 tomcat整合的基础之上
修改vi /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel debug
JkMount /*.jsp
loadbalancer
conf 下的 worker.properties 修改如下
worker.list=worker1,worker2,loadbalancer
worker.worker1.port=8009
worker.worker1.host=localhost
#本机一台tomcat
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
worker.worker2.port=8009
worker.worker2.host=10.228.56.80
#另外一台机器tomcat
worker.worker2.type=ajp13
worker.worker2.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1, worker2
# 负载指向 的机器
配置成功 这样就实现了负载均衡的 配置Nginx Tomcat 集群负载均衡解决笔记
1、Windows
下载nginx 地址:http://nginx.org/
本使用的版本为1.5.1
下载完后解压,在conf目录修改nginx.conf我的配置如下:
worker_processes
#error_log
logs/error.
#error_log
logs/error.
#error_log
logs/error.
logs/nginx.
worker_connections
default_type
application/octet-
#log_format
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log
logs/access.
client_header_timeout
client_body_timeout
send_timeout
client_header_buffer_size
large_client_header_buffers
#keepalive_timeout
keepalive_timeout
upstream localhost {
#根据ip将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。
#同一机器在多网情况下,路由切换,ip可能不同
server localhost:9097 weight=1;
server localhost:9098 weight=1;
server localhost:9097
server localhost:9098
#jvm_route $cookie_JSESSIONID| #session复制的配置
upstream backend {
server localhost:9097;
server localhost:9098;
#charset koi8-r;
#access_log
logs/host.access.
location ~ ^/(WEB-INF)/ {
###所以的静态文件人gif、jpg等都在本地打开,存放的目录为html,保存时间为30天
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|htm|html)$ {
expires 30d;
location / {
#这个文件是我们新建的,要导入
proxy_pass
proxy_#default
proxy_set_header
proxy_set_header
X-Real-IP $remote_
proxy_set_header
X-Forwarded-For $proxy_add_x_forwarded_
client_max_body_size
client_body_buffer_size
proxy_connect_timeout
proxy_send_timeout
proxy_read_timeout
proxy_buffer_size
proxy_buffers
proxy_busy_buffers_size
proxy_temp_file_write_size
#error_page
# redirect server error pages to the static page /50x.html
error_page
500 502 503 504
location = /50x.html {
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#location ~ \.php$ {
proxy_pass
http://127.0.0.1;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#location ~ \.php$ {
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
fastcgi_param
SCRIPT_FILENAME
/scripts$fastcgi_script_
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#location ~ /\.ht {
# another virtual host using mix of IP-, name-, and port-based configuration
somename:8080;
server_name
location / {
index.html index.
# HTTPS server
ssl_certificate
ssl_certificate_key
ssl_session_timeout
ssl_protocols
SSLv2 SSLv3 TLSv1;
ssl_ciphers
HIGH:!aNULL:!MD5;
ssl_prefer_server_
location / {
index.html index.
下载Tomcat
修改端口为9097
另一个修改为9098
分别启动二个tomcat和nginx在地址栏中输入http://locahost/则可以看到tomcat欢迎界面了
Linux 和window配置基本一样,只有linux下tomcat的配置要注意,需要添加环境变量
Apache+Tomcat 环境搭建(JK部署过程)
Apache只是一个web服务器,并不能运行JSP程序。如果要运行JSP程序,还需要安装Tomcat服务器软件,通过连接器组件整合Tomcat与Apche。当用户请求访问*.jsp网页时,由Aapache自动调用tomcat服务进行解析,并将结果页面返回到客户端浏览器。
系统环境:
RHEL6.0,内核心版本号2.6.32-71.el6.x86_64
所需软件:
httpd-2.2.15.tar.gz
apache-tomcat-6.0.18.tar.gz
jdk-6u25-linux-x64.bin
mod_jk-1.2.28-httpd-2.2.X.so
下载mod_jk 各种版本,别下错了
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
一、安装httpd 服务
[root@l- ~]#tar xzvf httpd-2.2.15.tar.gz
[root@l- ~]#cd httpd-2.2.15
[root@l- ~]#./configure –prefix=/usr/local/apache2 –enable-so –enable-rewrite && make && make install
二、安装配置jdk开发环境
1、 安装jdk
[root@l- ~]# mv jdk-6u25-linux-x64.bin /usr/bin/
[root@l- ~]# cd /usr/local/
[root@l- local]# chmod a+x jdk-6u25-linux-x64.bin
[root@l- local]# ./ jdk-6u25-linux-x64.bin
执行jdk安装程序后将会显示软件许可协议,按回车或空格至末尾,按照提示输入“yes”回车确认,等待1~2分钟左右即可完成安装。
2、为jdk的安装目录及执行程序创建链接文件,以方便使用。
[root@l- ~]# ln -sf /usr/local/jdk1.6.0_25 /usr/local/jdk6
[root@l- ~]# ln -sf /usr/local/jdk6/bin/java /usr/bin/
[root@l- ~]# ln -sf /usr/local/jdk6/bin/javac /usr/bin/
修改/etc/profile文件,添加JAVA开发环境需要的变量设置。
[root@l- ~]# vi /etc/profile
JAVA_HOME=/usr/local/jdk6
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
[root@l- ~]# source /etc/profile
3、测试java
查看安装的jdk 程序版本信息。
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
编写一个java测试小程序,并编译执行。
public class HelloWorld {
public static void main(String args[]) {
System.out.println("HelloWorld!!");
[root@l- ~]# javac HelloWorld.java //编译程序
[root@l- ~]# java HelloWorld //运行HelloWorld.class程序
HelloWorld!! //显示运行结果
三、安装配置Tomcat
1、安装tomcat
Tomcat的安装过程非常简单,只要将源码包解压至目的文件夹即可。
[root@l- ~]# tar zxvf apache-tomcat-6.0.18.tar.gz
-C /usr/local/
① 为Tomcat的安装目录及启动、关闭服务的脚本创建链接文件,方便使用。
[root@l- ~]# ln –sf /usr/local/apache-tomcat-6.0.18.tar.gz /usr/local/tomcat
[root@l- ~]# ln -sf /usr/local/tomcat/bin/startup.sh /usr/bin/tomcat-up
[root@l- ~]# ln -sf /usr/local/tomcat/bin/shutdown.sh /usr/bin/tomcat-down
② 修改/etc/profile文件,设置Tomcat服务需要使用的变量CATALINA_HOME。
[root@l- ~]# vi /etc/profile //结合第一步,确认有如下内容:
JAVA_HOME=/usr/local/jdk6
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CACTALINA_HOME CLASSPATH PATH
[root@l- ~]# source /etc/profile //执行profile文件使新配置生效
3、修改tomcat-users.xml文件,添加管理员账户“tomcat”设置。
[root@l- ~]# vi /usr/local/tomcat/conf/tomcat-users.xml
&?xml version='1.0' encoding='utf-8'?&
&tomcat-users&
&user username="tomcat" password="tomcat" roles="manager,admin"/&
&/tomcat-users&
(3) 测试。
① 启动Tomcat服务,并确认Tomcat服务的监听状态。
[root@l- ~]# tomcat-up
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk6
[root@l- ~]# netstat -anpt | grep java
tcp 0 0 :::8009 :::* LISTEN 7399/java
tcp 0 0 :::8080 :::* LISTEN 7399/java
② 访问http://172.16.12.40:8080 ,可以看到Tomcat的web首页(如下图所示)
③ 通过单击“Tomacat Manager”链接可以登录后对Tomcat进行管理(如下图所示),如需停止Tomcat服务,可执行“tomcat-down”。
4、 将Tomcat服务与Aptech服务进行连接
虽然Tomcat可以独立作为Web服务器运行,但是Tomcat的Web功能远没有Apache强大。在实际应用中,通过mod_jdk连接器(Connectors)将Apache和Tomcat整合在一起。调用Tomcat服务的工作由Apache来完成,而用户只需要访问Apache服务。
(1) 安装mod_jdk模块。
[root@l- ~]# cp mod_jk-1.2.28-httpd-2.2.X.so /usr/local/apache2/modules
(2) 调整Apache服务、Tomcat服务的相关配置,并重启tomcat、httpd服务。
① 修改http.conf配置文件,添加jdk调用配置。
[root@l- ~]# vi /usr/local/apache2/conf/httpd.conf
ServerName l-
DocumentRoot "/usr/local/apache2/htdocs"
LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.X.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/mod_jk.shm
JkLogLevel notice
JkMount /*/*.jsp work1
JkMountCopy All
AddType application/x-jsp .jsp
② 添加tomcat配置文件,并建立Web应用目录链接
[root@l- ~]# vi /usr/local/apache2/conf/workers.properties
worker.list=work1
worker.work1.port=8009
worker.work1.host=l-
worker.work1.type=ajp13
worker.work1.lbfactor=1
[root@l- ~]# cd /usr/local/tomcat
[root@l- tomcat]# mv webapps webapps.bak
[root@l- tomcat]# ln -sf /usr/local/apache2/htdocs webapps
③ 重启 apache 和tomcat服务。
[root@l- ~]# tomcat- tomcat-up
[root@l- ~]# /usr/local/apache2/bin/apachectl restart
(3) 测试
① 创建显示系统时间的JSP测试网页。
[root@l- ~]# mkdir /usr/local/apache2/htdocs/apps/
[root@l- ~]# vi /usr/local/apache2/htdocs/apps/showtime.jsp
&%@page language="java" import="java.util.*"%&
Now,the time&date is : &%out.println(new Date());%&
② http://192.168.0.10/apps/showtime.jsp , 应在网页中显示当前的系统时间
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索tomcat
nginx tomcat负载均衡、nginx服务器负载均衡、nginxtomcat负载均衡、nginx负载均衡配置、nginx 负载均衡,以便于您获取更多的相关知识。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...
云栖社区()为您免费提供相关信息,包括
的信息,还有nginx tomcat负载均衡、nginx服务器负载均衡、nginxtomcat负载均衡、nginx负载均衡配置、nginx 负载均衡等
,所有相关内容均不代表云栖社区的意见!斜视天花板 的BLOG
用户名:斜视天花板
文章数:45
访问量:8058
注册日期:
阅读量:5863
阅读量:12276
阅读量:423322
阅读量:1111722
51CTO推荐博文
一、规划& & 规划系统IP服务hostnameCentos 6.5 x86_64172.16.12.1nginxwebCentos 6.5 x86_64172.16.12.101tomcattomcat1Centos 6.5 x86_64172.16.12.102tomcattomcat2二、负载均衡实现过程& &1、nginx配置如下 & &[root@nginx&~]#&grep&-v&"#"&/etc/nginx/nginx.conf&|&grep&-v&^$
worker_processes&&1;
&&&&worker_connections&&1024;
&&&&include&&&&&&&mime.
&&&&default_type&&application/octet-
&&&&sendfile&&&&&&&&
&&&&keepalive_timeout&&65;
&&&&upstream&jsp_server&{&&&&//定义后端集群tomcat
&&&&server&172.16.12.101:8080;
}&&&server&172.16.12.102:800;
&&&&server&{
&&&&&&&&listen&&&&&&&80;
&&&&&&&&&location&/&{&&&&//默认转发至tomcat集群
&&&&&&&&&&&&&&&&&&proxy_pass&http://jsp_
&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&location&~*&(\.jsp|do)$&{&&&
&&&&&&&&proxy_pass&http://jsp_
&&&&&&&&error_page&&&500&502&503&504&&/50x.
&&&&&&&&location&=&/50x.html&{
&&&&&&&&&&&&root&&&
2、tomcat1和tomcat2上分别编辑server.xml配置文件,添加一个host和context[root@tomcat1&~]#&vim&&/usr/local/tomcat/conf/server.xml
&&Host&name=""&appBase="/www/webapps"
&&&&&&&&&&&unpackWARs="true"&autoDeploy="true"&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Context&path="/"&docBase="/www/webapps"&reloadable="true"/&&
&/Host&& &3、建立index.jsp&&&&①、tomcat1上[root@tomcat1&ROOT]#&vim&/www/webapps/index.jsp&
&%@&&page&language="java"&%&
&&&head&&title&test.node1&/title&&/head&
&&&body&&&&&&h1&&font&color="red"&test.node1.org&/font&&/h1&
&&&&&table&align="centre"&border="1"&
&&&&&&&tr&
&&&&&&&&&td&Session&ID&/td&
&&&&&%&session.setAttribute("test.org","test.org");&%&
&&&&&&&&&td&&%=&session.getId()&%&&/td&
&&&&&&&/tr&
&&&&&&&tr&
&&&&&&&&&td&Created&on&/td&
&&&&&&&&&td&&%=&session.getCreationTime()&%&&/td&
&&&&&&/tr&
&&&&&/table&
&/html&&&&&&&&&测试:&&&&650) this.width=650;" src="/wyfs02/M02/28/82/wKioL1N6BuvjG7zYAAD3QNJYyAU908.jpg" title="to-1.png" alt="wKioL1N6BuvjG7zYAAD3QNJYyAU908.jpg" />&&&&&&&&②、tomcat2上[root@tomcat2&ROOT]#&vim&/www/webapps/index.jsp&
&%@&&page&language="java"&%&
&&&head&&title&test.node2&/title&&/head&
&&&body&&&&&&h1&&font&color="blue"&test.node2.org&/font&&/h1&
&&&&&table&align="centre"&border="1"&
&&&&&&&tr&
&&&&&&&&&td&Session&ID&/td&
&&&&&%&session.setAttribute("test.org","test.org");&%&
&&&&&&&&&td&&%=&session.getId()&%&&/td&
&&&&&&&/tr&
&&&&&&&tr&
&&&&&&&&&td&Created&on&/td&
&&&&&&&&&td&&%=&session.getCreationTime()&%&&/td&
&&&&&&/tr&
&&&&&/table&
&/html&&&&&测试:&&&&650) this.width=650;" src="/wyfs02/M01/28/83/wKioL1N6ENmC8LK-AAD7K8mxTCE280.jpg" title="t0-2.png" alt="wKioL1N6ENmC8LK-AAD7K8mxTCE280.jpg" />三、实现session会话同步(DeltaManager方式)&&&&tomcat会话管理&&&&会话分类&&&&标准会话管理器和持久会话管理器&&&&标准会话管理器(StandardManager)&Manager&className="org.apache.catalina.session.StandardManager"
&&&&&&&&&&&&&&&&&maxInactiveInterval="7200"/&&&&&默认保存于$CATALINA_HOME/work/Catalina/&hostname&/&webapp-name&/下的SESSIONS.ser文件中。maxActiveSessions:最多允许的活动会话数量,默认为-1,表示不限制;
maxInactiveInterval:非活动的会话超时时长,默认为60s;
pathname:会话文件的保存目录;&&持久会话管理器(PersistentManager):将会话数据保存至持久存储中,并且能在服务器意外中止后重新启动时重新加载这些会话信息。持久会话管理器支持将会话保存至文件存储(FileStore)或JDBC存储(JDBCStore)中。&&&&保存至文件中的示例 &&Manager&className="org.apache.catalina.session.PersistentManager"
&&&&&&&&&&saveOnRestart="true"&
&&&&&&&&&&&Store&className="org.apache.catalina.session.FileStore"
&&&&&&&&&&&&directory="/data/tomcat-sessions"/&
&&&&&&&&&/Manager&每个用户的会话会被保存至directory指定的目录中的文件中,文件名为.session,并通过后台线程每隔一段时间(checkInterval参数定义,默认为60秒)检查一次超时会话。 &&&&&保存至JDBCStore中的示例 &&Manager&className="org.apache.catalina.session.PersistentManager"
&&&&&&&&&&saveOnRestart="true"&
&&&&&&&&&&&Store&className="org.apache.catalina.session.JDBCStore"
&&&&&&&&&&&&driverName="com.mysql.jdbc.Driver"
&&&&&&&&&&&&connectionURL="jdbc:mysql://localhost:3306/mydb?user=password=pw"/&
&&&&&&&&&/Manager&Manger对象用于实现HTTP会话管理的功能,Tomcat6中有4种Manger的实现:StandardManagerTomcat7的默认会话管理器,用于非集群环境中对单个处于运行状态的Tomcat实例会话进行管理。当Tomcat关闭时,这些会话相关的数据会被写入磁盘上的一个名叫SESSION.ser的文件,并在Tomcat下次启动时读取此文件。
PersistentManager当一个会话长时间处于空闲状态时会被写入到swap会话对象,这对于内存资源比较吃紧的应用环境来说比较有用。
DeltaManager用于Tomcat集群的会话管理器,它通过将改变了的会话数据同步给集群中的其它节点实现会话复制。这种实现会将所有会话的改变同步给集群中的每一个节点,也是在集群环境中用得最多的一种实现方式。
BackupManager用于Tomcat集群的会话管理器,与DeltaManager不同的是,某节点会话的改变只会同步给集群中的另一个而非所有节点。&&&&注 :负载均衡,且实现会话绑定要注意给每个tomcat实例的egine容器一个jvmRoute属性!此名称要跟前端调度模块使用名称保持一致!另外,在mod_proxy实现负载均衡的会话绑定时,还要使用sticksession=JSESSIONID(字符要大写)!&&&&1、分别编辑tomcat1和tomcat2下conf中server.xml&&&&tomcat1上:[root@tomcat1&conf]#&vim&/usr/local/tomcat/conf/server.xml
//修改如下一行内容
&Engine&name="Catalina"&defaultHost=""&jvmRoute="tomcat1"&
//然后在Engine行下添加如下内容
&&&&&Cluster&className="org.apache.catalina.ha.tcp.SimpleTcpCluster"&channelSendOptions="8"&
&&&&&Manager&className="org.apache.catalina.ha.session.DeltaManager"&
&&&&expireSessionsOnShutdown="false"&
&&&&notifyListenersOnReplication="true"/&
&&&&&Channel&className="org.apache.catalina.tribes.group.GroupChannel"&
&&&&&Membership&className="org.apache.catalina.tribes.membership.McastService"&
&&&&address="228.0.12.8"&port="45564"&frequency="500"&dropTime="3000"/&
&&&&&Receiver&className="org.apache.catalina.tribes.transport.nio.NioReceiver"&
&&&&address="172.16.12.101"&port="4000"&autoBind="100"&selectorTimeout="5000"&maxThreads="6"/&
&&&&&Sender&className="org.apache.catalina.tribes.transport.ReplicationTransmitter"&
&&&&&Transport&className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/&
&&&&&/Sender&
&&&&&Interceptor&className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/&
&&&&&Interceptor&className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/&
&&&&&/Channel&
&&&&&Valve&className="org.apache.catalina.ha.tcp.ReplicationValve"&filter="/"/&
&&&&&Valve&className="org.apache.catalina.ha.session.JvmRouteBinderValve"/&
&&&&&Deployer&className="org.apache.catalina.ha.deploy.FarmWarDeployer"&tempDir="/tmp/war-temp/"&
&&&&deployDir="/tmp/war-deploy/"&watchDir="/tmp/war-listen/"&watchEnabled="false"/&
&&&&&ClusterListener&className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/&
&&&&&ClusterListener&className="org.apache.catalina.ha.session.ClusterSessionListener"/&
&&&&&/Cluster&&&&&&&&&tomcat2上:(只有ipadress和tomcat1上不一样)[root@tomcat2&~]#&vim&/usr/local/tomcat/conf/server.xml
//修改如下一行内容
&Engine&name="Catalina"&defaultHost=""&jvmRoute="tomcat2"&
&Cluster&className="org.apache.catalina.ha.tcp.SimpleTcpCluster"&channelSendOptions="8"&
&Manager&className="org.apache.catalina.ha.session.DeltaManager"&
expireSessionsOnShutdown="false"&
notifyListenersOnReplication="true"/&
&Channel&className="org.apache.catalina.tribes.group.GroupChannel"&
&Membership&className="org.apache.catalina.tribes.membership.McastService"&
address="228.0.12.8"&port="45564"&frequency="500"&dropTime="3000"/&
&Receiver&className="org.apache.catalina.tribes.transport.nio.NioReceiver"&
address="172.16.12.102"&port="4000"&autoBind="100"&selectorTimeout="5000"&maxThreads="6"/&
&Sender&className="org.apache.catalina.tribes.transport.ReplicationTransmitter"&
&Transport&className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/&
&Interceptor&className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/&
&Interceptor&className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/&
&/Channel&
&Valve&className="org.apache.catalina.ha.tcp.ReplicationValve"&filter="/"/&
&Valve&className="org.apache.catalina.ha.session.JvmRouteBinderValve"/&
&Deployer&className="org.apache.catalina.ha.deploy.FarmWarDeployer"&tempDir="/tmp/war-temp/"&
deployDir="/tmp/war-deploy/"&watchDir="/tmp/war-listen/"&watchEnabled="false"/&
&ClusterListener&className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/&
&ClusterListener&className="org.apache.catalina.ha.session.ClusterSessionListener"/&
&/Cluster&&&&&2、将conf/web.xml复制一份到发布的站点目录WEB-INF下,在&/web-app&前面加入以下这句话&distributable/&&&&&tomcat1上:拷贝[root@tomcat1&~]#&cd&/usr/local/tomcat/
[root@tomcat1&conf]#&cp&conf/web.xml&../www/webapps/WEB-INF
[root@tomcat1&conf]#&vim&/www/webapps/WEB-INF/web.xml
添加组播路由:
[root@tomcat1&tomcat]#&route&add&-net&228.0.12.8&netmask&255.255.255.255&dev&eth0&&&&tomcat2上:拷贝 & &[root@tomcat1&~]#&cd&/usr/local/tomcat/
[root@tomcat1&conf]#&cp&conf/web.xml&../www/webapps/WEB-INF
[root@tomcat1&conf]#&vim&/www/webapps/WEB-INF/web.xml
添加组播路由:
[root@tomcat2&~]#&route&add&-net&228.0.12.8&netmask&255.255.255.255&dev&eth0&&&&3、测试650) this.width=650;" src="/wyfs02/M02/29/2C/wKioL1N8f5_jpNcPAAEJWwPPQFQ062.jpg" title="图像 1.png" alt="wKioL1N8f5_jpNcPAAEJWwPPQFQ062.jpg" />650) this.width=650;" src="/wyfs02/M01/29/2C/wKiom1N8f9_yCPWUAAEDNFS91xY756.jpg" title="图像 2.png" alt="wKiom1N8f9_yCPWUAAEDNFS91xY756.jpg" />本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)}

我要回帖

更多关于 linux tomcat与 nginx 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信