Nginx+Tomcat 集配置
Nginx对处理静态文件(如html、jpg等)的性能十分优异,具有高并发、占用资源低、扩展性强的特点。Nginx的这个特点,对于专注于处理java的tomcat来说,可以说是个完美的搭档。生产环境下,已经取代早期的apache+tomcat,并且还可以使用Nginx结合jvm_router这个国人开发的扩展,做下tomcat的集。
配置环境
两台服务器:192.168.0.239 192.168.0.240
操作系统:CentOS 6.3
Jdk:jdk-6u35-linux-x64.bin
Tomcat :6.0.35
Nginx :nginx-1.2.4
安装jdk
在第一台机器,192.168.0.239(以后称为A)安装JDK
1. 使用命令 chmod +x jdk-6u35-linux-x64.bin 赋予jdk执行权限。
2. 安装jdk,使用命令: ./jdk-6u35-linux-x64.bin
3. 配置环境变量,拷贝jdk的目录到/usr下,/etc/profile文件的末尾添加如下:
export JAVA_HOME=/usr/jdk
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4. 使用命令:source /etc/profile ,使配置即刻生效。然后测试jdk是否成功:java -version
5. 第二台服务器同上安装jdk
安装Tomcat
1. 下载apache-tomcat-6.0.,解压到/usr目录下,并重命名为tomcat
2. 进入/usr/tomcat的bin目录下,使用命令 chmod +x ./* 给bin目录下的文件,赋予可执行权利。
3. 进入/usr/tomcat/conf目录下,编辑l文件,增加admin管理员,并加入manager组。效果如下:
4. 编辑tomcat下conf目录下的l文件,编辑Connector,更改端口为:8090,并调优线程数,具体如下:
<Connector port=”8090″
maxThreads=”1500”
minSpareThreads=”100”
maxSpareThreads=”500”
acceptCount=”1000”
enableLookups=”false”
redirectPort=”8443″
connectionTimeout=”20000″/>
注释:
maxThreads:最大线程数,将其中的maxThreads=”150″ 修改为maxThreads=”1500″ ,即可以最大承载1500个并发事务。一个用户基本上请求一次服务需要二个线程进行支持(一个是request,一个是response)。这样IGRP就可以承载最高750个用户的完全并发。maxThreads默认tomcat配置为200个。
minSpareThreads: 最小备用线程数,tomcat启动时的初始化的线程数,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket
acceptCount:当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100,一般是设置的跟maxThreads一样大,这个值应该是主要根据应用的访问峰值与平均值来权衡配置的。如果设的较小,可以保证接受的请求较快相应,但是超出的请求可能就直接被拒绝;如果设的较大,可能就会出现大量的请求超时的情况,因为我们系统的处理能力是一定的。
enableLookups:设置为“false”来关闭DNS 查询。如果为true,则可以通过调用RemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址。
5. 在catalina.sh中,设置JAVA_OPTS='-Xms1024m–Xmx1512m'
注释:设置JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%
6. 修改l文件的Engine部分,增加jvmRoute,此处为nginx负载时候使用。此处为mycat1,第二台设置为mycat2
7. 在另一台服务器192.168.0.240做如上同样设置
安装Nginx
1. 使用命令tar -zxvf nginx-1.2. 解压nginx,并把解压后的目录拷贝到/usr下,重名为nginx
2. 下载pcre-8.,解压缩后,进入pcre目录,使用命令 ./configure --prefix=/usr/local/pcre &&make &&make install 编译并安装。
3. 下载 nginx-upstream-jvm-route-0. ,解压后,拷贝目录到/usr下。
4. 进入/usr/nginx 目录,使用命令:patch -p0 < ../nginx_upstream_jvm_route/jvm_route.patch
5. 创建用户www及用户组www。编译、安装nginx:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module--with-pcre=/home/yanzi/pcre-8.20 --add-module=../nginx_upstream_jvm_route/ --user=www --group=www
make
make install
*标红部分为pcre的源目录,切记
配置Nginx
1. 更改f的events部分,修改后如下:
2. 修改f,增加upstream段,此处为集服务器。
upstream mybackend {
server 192.168.0.239:8090 srun_id=mycat1;
server 192.168.0.240:8090 srun_id=mycat2;
jvm_route $cookie_JSESSIONID|sessionid reverse;
}
在http段内,增加如下设置:
sendfile on;
keepalive_timeout 65;
include pes;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
tcp_nopush on;
tcp_nodelay on;
client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
3 增加server段,对于静态文件如html、js、jpg由nginx处理,jsp转向tomcat处理。
server {
listen 80;
server_name 192.168.0.239;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root /web;
index index.html index.htm;
}
error_page 404 404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
location ~ \.jsp$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass mybackend;
jsessionid }
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论