版权证明:原创文章,允许转发,转发时请务必以超链接格局申明文章 原始出处
、小编音讯和本表明。不然将切磋法律权利。http://deidara.blog.51cto.com/400447/193887
测量检验情况: server1 服务器上安装了 nginx + resin server2
服务器上只设置了 resin server1 IP 地址: 192.168.6.121
server2 IP 地址: 192.168.6.162 设置步骤: 1. 在server1
上设置配置 nginx + nginx_upstream_jvm_route shell $> wget -c
shell $> svn checkout
http://nginx-upstream-jvm-route.googlecode.com/svn/trunk/
nginx-upstream-jvm-route-read-only shell $> tar zxvf nginx-0.7.61
shell $> cd nginx-0.7.61 shell $> patch -p0 <
../nginx-upstream-jvm-route-read-only/jvm_route.patch shell $> useradd www shell $>
./configure –user=www –group=www –prefix=/usr/local/webserver/nginx
–with-http_stub_status_module –with-http_ssl_module
–add-module=/root/nginx-upstream-jvm-route-read-only shell $>
make shell $> make install 2.个别在两台机器上 安装 resin
### 修改意况变量### shell $> vim /etc/profile ###在 umask
022 下填加以下### JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME JRE_HOME=”${JAVA_HOME}”/jre
export JRE_HOME
CLASSPATH=.:”${JAVA_HOME}”/lib/tools.jar:”${JAVA_HOME}”/lib/dt.jar${RESIN_HOME}”/lib/resin.jar:”${CLASSPATH}
export CLASSPATH RESIN_HOME=/usr/local/resin
export RESIN_HOME
PATH=”${JAVA_HOME}”/bin:”${PATH}”
export PATH shell $> wget -c
shell $> tar zxvf
resin-3.1.9.tar.gz shell $> cd resin-3.1.9 shell $> ./configure
–prefix=/usr/local/resin shell $> make shell $> make install
3. 安插两台机器 的 resin shell $> cd /usr/local/resin shell $>
cd conf shell $> vim resin.conf ## 查找 <http address=”*”
port=”8080″/> ## 注释掉 <!–http address=”*” port=”8080″/–>
## 查找 <server id=”” address=”127.0.0.1″ port=”6800″> ##
替换成 <server id=”a” address=”192.168.6.121″ port=”6800″>
<!– server2 address=192.168.6.162 –>
<http id=”” port=”8080″/>
</server> <server id=”b” address=”192.168.6.121″
port=”6801″> <!– server2 address=192.168.6.162 –>
<http id=”” port=”8081″/>
</server>
shell $> cd /usr/local/resin/webapps/ROOT/ shell $> mv index.jsp
index.jsp.bak shell $> vim index.jsp ## 填入以下内容 <%@ page
language=”java” import=”java.util.*” pageEncoding=”UTF-8″%>
<%
%> <html>
<head>
</head>
<body>
121 <!–server2 这里为 162 –>
<br />
<%out.print(request.getSession()) ;%>
<!–输出session–>
<br />
<%out.println(request.getHeader(“Cookie”)); %>
<!–输出Cookie–> </body>
</html> ###重启 resin 服务##### ### server1
服务器##### shell $> /usr/local/resin/bin/httpd.sh -server a
start ###注意 借使没修改 境遇变量会报错 ### server2 服务器
#### shell $> /usr/local/resin/bin/httpd.sh -server b start
### 注意的是 server2 服务器 只运维 server_id b ### 4.整合
ngxin resin shell $> cd /usr/local/nginx/conf shell $> mv
nginx.conf nginx.bak shell $> vim nginx.conf ## 以下是布局 ###
user www www; worker_processes 4; error_log logs/nginx_error.log
crit; pid /usr/local/nginx/nginx.pid; #Specifies the value for
maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200; events
{
use epoll;
worker_connections 2048;
} http
{
upstream backend {
server 192.168.6.121:8080 srun_id=a; #### 这里
srun_id=a 对应的是 server1 resin 配置里的 server id=”a”
server 192.168.6.162:8081 srun_id=b; #### 这里
srun_id=b 对应的是 server2 resin 配置里的 server id=”b”
jvm_route $cookie_JSESSIONID|sessionid;
} include mime.types;
default_type application/octet-stream; #charset gb2312;
charset UTF-8; server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 20m;
limit_rate 1024k; sendfile on;
tcp_nopush on; keepalive_timeout 60; tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; gzip on;
#gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2; gzip_types text/plain
application/x-javascript text/css application/xml;
gzip_vary on; #limit_zone crawler $binary_remote_addr 10m;
server
{
listen 80;
server_name 192.168.6.121;
index index.html index.htm index.jsp;
root /var/www;
哪些安装系统,更新自身就不罗嗦了,互连网资料非常多。直接说搭建平台
以下以root帐户安装为列!
明日看到 谷歌(Google) 代码上有个
nginx_upstream_jvm_route
项目,看完介绍后,很欢跃,因为是个中华夏族民共和国人写的补丁,化解 session
不一致步难题,可是她不是分享,亦非一齐,而是经过 cookie_session
来识别!通过与笔者的email 通讯,对这一次测量试验有了不小的增派,因为自个儿第壹次搞
jsp 的事物,再这里多谢 Weibin Yao 还会有 Cluster服务技艺群2
的张涛大哥!
测验意况:
server1 服务器上安装了 nginx + resin
server2 服务器上只设置了 resin
server1 IP 地址: 192.168.6.121
server2 IP 地址: 192.168.6.162
安装步骤:
location ~ .*\.jsp$
{
proxy_pass ;
proxy_redirect off;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
} location ~ .*\.(js|css)?$
{
expires 1h;
} location /stu {
stub_status on;
access_log off;
}
log_format access ‘$remote_addr – $remote_user [$time_local]
“$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
# access_log off;
}
一.resin+java平台
1.下载安装JAVA6
- 在server1 上安装配置 nginx + nginx_upstream_jvm_route
shell $> wget -c
shell $> svn checkoutnginx-upstream-jvm-route-read-only
shell $> tar zxvf nginx-0.7.61
shell $> cd nginx-0.7.61
shell $> patch -p0 <
../nginx-upstream-jvm-route-read-only/jvm_route.patch
shell $> useradd www
shell $> ./configure –user=www –group=www
–prefix=/usr/local/webserver/nginx –with-http_stub_status_module
–with-http_ssl_module
–add-module=/root/nginx-upstream-jvm-route-read-only
shell $> make
shell $> make install
2.个别在两台机器上 安装 resin
### 修改景况变量###
shell $> vim /etc/profile
###在 umask 022 下填加以下###
JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME
JRE_HOME=”${JAVA_HOME}”/jre
export JRE_HOME
CLASSPATH=.:”${JAVA_HOME}”/lib/tools.jar:”${JAVA_HOME}”/lib/dt.jar${RESIN_HOME}”/lib/resin.jar:”${CLASSPATH}
export CLASSPATH
RESIN_HOME=/usr/local/resin
export RESIN_HOME
PATH=”${JAVA_HOME}”/bin:”${PATH}”
export PATH
shell $> wget -c
shell $> tar zxvf resin-3.1.9.tar.gz
shell $> cd resin-3.1.9
shell $> ./configure –prefix=/usr/local/resin
shell $> make
shell $> make install
}
极端奉行以下代码:(不要把终端关了)
apt-get install sun-java6-jre sun-java6-jdk
默许安装就行
5.测验,展开浏览器,输入
----------------------------
2.安装resin
终极执行以下代码:(复制以下代码在终端下推行)
cd /usr/
wget
session 突显 aXXXXX 访问的是 121 服务器也即是
server1,因为是首先次访谈所以Cookie
未有获得,刷新一下看她是或不是轮询会访谈到 162 server2.
下载达成后实施解压:(复制以下代码在极限下实践)
tar -zxvf resin.tar.gz
复制运维文件到init.d目录:(复制以下代码在终点下进行)
cp /usr/resin/bin/httpd.sh /etc/init.d/resin
修改运行文件权限:(复制以下代码在极限下实行)
chmod 755 /etc/init.d/resin
刷新 N 遍后照旧是 121,也正是补丁起功效了,cookie 值
也收获了,为了测量试验,小编又开辟了 “火狐浏览器”因为session 和
cookie难题因而从新张开其余浏览器),输入网站:
----------------------------
3.编辑profile文件
极限下推行:
gedit /etc/profile
突显的是 162 ,session 值 是以 bXXX 开始的,刷新 N遍后:
在umask 022上面增添以下代码:
JAVA_HOME=/usr/lib/jvm/java-6-sun
export JAVA_HOME
反之亦然是 162 server 2服务器!!我们测验的时候假设有问号可一把 nginx
配置文件的 srun_id=a srun_id=b 去掉,然后在拜望,就能够懂得页面是轮询访问得了!! 小编上传的补丁清在 linux 系统上解压,因为 51cto
不协助 gz格式,所以小编就改了一后缀名,在linux 系统上奉行 shell $> tar
zxvf nginx-upstream-jvm-route-read-only.rar 就足以了! tomcat
的消除措施 README 上有: 1.For resin
upstream backend {
server 192.168.0.100 srun_id=a;
server 192.168.0.101 srun_id=b;
server 192.168.0.102 srun_id=c;
server 192.168.0.103 srun_id=d; jvm_route
$cookie_JSESSIONID|sessionid;
}
2.For tomcat
upstream backend {
server 192.168.0.100 srun_id=a;
server 192.168.0.101 srun_id=b;
server 192.168.0.102 srun_id=c;
server 192.168.0.103 srun_id=d;
JRE_HOME=”${JAVA_HOME}”/jre
export JRE_HOME
jvm_route $cookie_JSESSIONID|sessionid reverse;
}
CLASSPATH=.:”${JAVA_HOME}”/lib/tools.jar:”${JAVA_HOME}”/lib/dt.jar${RESIN_HOME}”/lib/resin.jar:”${CLASSPATH}
export CLASSPATH
服务器上安装了 nginx +
resinserver2 服务器上只设置了 resinserver1 IP 地址:
192.168.6.121server2 IP 地址: 192.168.6.162 安装步骤:…
RESIN_HOME=/usr/resin
export RESIN_HOME
PATH=”${JAVA_HOME}”/bin:”${PATH}”
export PATH
----------------------------
4.再一次起动计算机,让变量生效。
----------------------------
测量试验运维resin(复制以下代码在极端下施行)
/usr/resin/bin/httpd.sh start