admin 管理员组

文章数量: 887053


2024年1月14日发(作者:用php建网站用到eclipse)

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:

Tomcat :6.0.35

Nginx :nginx-1.2.4

安装jdk

在第一台机器,192.168.0.239(以后称为A)安装JDK

1. 使用命令 chmod +x 赋予jdk执行权限。

2. 安装jdk,使用命令: ./

3. 配置环境变量,拷贝jdk的目录到/usr下,/etc/profile文件的末尾添加如下:

export JAVA_HOME=/usr/jdk

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/lib/

4. 使用命令:source /etc/profile ,使配置即刻生效。然后 测试jdk是否成功:java -version

5. 第二台服务器同上安装jdk

安装Tomcat

1. 下载,解压到/usr目录下,并重命名为tomcat

2. 进入/usr/tomcat的bin目录下,使用命令 chmod +x ./* 给bin目录下的文件,赋予可执行权利。

3. 进入/usr/tomcat/conf目录下,编辑文件,增加admin管理员,并加入manager组。效果如下:

4. 编辑tomcat下conf目录下的文件,编辑Connector,更改端口为: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,则可以通过调用oteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址。

5. 在中,设置JAVA_OPTS='-Xms1024m –Xmx1512m'

注释:设置JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%

6. 修改文件的Engine部分,增加jvmRoute,此处为nginx负载时候使用。此处为mycat1,第二台设置为mycat2

7. 在另一台服务器192.168.0.240做如上同样设置

安装Nginx

1. 使用命令 tar -zxvf 解压nginx,并把解压后的目录拷贝到/usr下,重名为nginx

2. 下载,解压缩后,进入pcre目录,使用命令 ./configure

--prefix=/usr/local/pcre &&make &&make install 编译并安装。

3. 下载 ,解压后,拷贝目录到/usr下。

4. 进入/usr/nginx 目录,使用命令:patch -p0

< ../nginx_upstream_jvm_route/jvm_

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. 更改的events部分,修改后如下:

2. 修改,增加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 ;

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/ main;

location / {

root /web;

index ;

}

error_page 404 ;

# redirect server error pages to the static page /

#

error_page 500 502 503 504 /;

location = / {

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

proxy_pass mybackend;

}

}

$remote_addr;


本文标签: 目录 文件 线程 请求 使用