利用nginx搭建tomcat集群

Posted AI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用nginx搭建tomcat集群相关的知识,希望对你有一定的参考价值。

 1、tomcat集群

  利用nginx对请求进行分流,将请求平均的分给不同的tomcat去处理,减少单个tomcat的负载量,提高tomcat的响应速度。

 

2、创建多个tomcat服务器(同一个服务器上)

  ①  先安装配置好1个tomcat服务器

    安装tomcat: http://www.cnblogs.com/origalom/p/7643425.html

    以普通用户运行tomcat:http://www.cnblogs.com/origalom/p/7666897.html

  ②  将安装好的tomcat复制一份

1 cd /usr/local/tomcat/                                     # 进入tomcat所在目录
2 cp -r tomcat8080/ tomcat8081          #  复制一份新的tomcat
3 chown -R tomcat:tomcat tomcat8081/            #  修改tomcat目录的所有者

     ③  修改daemon.sh

    如果在创建tomcat时,在daemon.sh中设置了CATALINA_HOME等变量,则新拷贝的tomcat需要将这些变量设置成新的地址。

  ④  修改端口,让新的tomcat可以正常运行

vim tomcat8081/conf/server.xml

       修改tomcat内部的端口,使用一个未使用的端口号,一般可以往上加一:

    第22行的8005端口:  <Server port="8005" shutdown="SHUTDOWN">

    第69行的8080端口:

      <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
            redirectPort="8443" />

    第116行的8009端口: <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

  ⑤ 修改tomcat项目的运行根目录

    修改server.xml,将148行的appBase中的webapps改成项目所在地址:

    <Host name="localhost" appBase="/usr/local/tomcat/tomcat8080/webapps"
        unpackWARs="true" autoDeploy="true">

  ⑥  启动tomcat,检查是否启动成功

    sudo tomcat8081/bin/daemon.sh start

3、配置nginx负载均衡

  配置nginx.conf配置文件。

 1 user  nginx;
 2 worker_processes  1;
 3 
 4 error_log  logs/error.log;
 5 error_log  logs/error.log  notice;
 6 error_log  logs/error.log  info;
 7 
 8 pid        logs/nginx.pid;
 9 
10 
11 events {
12     worker_connections  1024;
13 }
14 
15 
16 http {
17     include       mime.types;
18     default_type  application/octet-stream;
19 
20     #log_format  main  \'$remote_addr - $remote_user [$time_local] "$request" \'
21     #                  \'$status $body_bytes_sent "$http_referer" \'
22     #                  \'"$http_user_agent" "$http_x_forwarded_for"\';
23 
24     #access_log  logs/access.log  main;
25 
26     server_names_hash_bucket_size 256;
27     fastcgi_connect_timeout 300;
28     fastcgi_send_timeout 300;
29     fastcgi_read_timeout 300;
30     fastcgi_buffer_size 64k;
31     fastcgi_buffers 8 128k;
32     fastcgi_busy_buffers_size 256k;
33     fastcgi_temp_file_write_size 256k;
34     server_tokens off;
35     send_timeout     60;
36     sendfile        on;
37     tcp_nopush on;
38     tcp_nodelay on;
39     keepalive_timeout  65;
40     client_header_timeout 3m;
41     client_body_timeout 3m;
42     client_max_body_size 2000m;
43     gzip  on;
44 
45     # tomcat集群
46     #
47     upstream tomcat {
48         server 127.0.0.1:8080;
49         server 127.0.0.1:8081;
50     }
51 
52 
53     # HTTPS服务器
54     #
55     server {
56         listen       80;
57         listen       443 ssl;
58         server_name  www.origal.cn;
59 
60         ssl_certificate      /usr/local/nginx/conf/ssl/214324938610703.pem;
61         ssl_certificate_key  /usr/local/nginx/conf/ssl/214324938610703.key;
62         ssl_session_cache    shared:SSL:1m;
63         ssl_session_timeout  5m;
64         ssl_ciphers  HIGH:!aNULL:!MD5;
65         ssl_prefer_server_ciphers  on;
66 
67         location / {
68             index  index.jsp;
69             
70             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
71             proxy_set_header Host $http_host;
72             proxy_set_header X-Forwarded-Proto https;
73             proxy_redirect off;
74             client_max_body_size 500m;
75             client_body_buffer_size 3m;
76             proxy_connect_timeout 90;
77             proxy_read_timeout 90;
78             proxy_buffer_size 4k;
79             proxy_buffers 6 32k;
80             proxy_busy_buffers_size 64k;
81             proxy_temp_file_write_size 64k;
82             
83             if (!-e $request_filename) {
84                 proxy_pass http://tomcat;
85             }
86         }
87         
88         # 静态资源直接访问
89         location ~ \\.(js|css|png|gif|jpg|jpeg|mp4|mp3|mpg|3gp|txt)$ {  
90             root /usr/local/java/tomcat8080/webapps/;
91             if (!-e $request_filename) {
92                 proxy_pass http://tomcat;
93             }
94         }
95     }
96 }

 

以上是关于利用nginx搭建tomcat集群的主要内容,如果未能解决你的问题,请参考以下文章

Nginx+Tomcat搭建集群环境

Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

nginx+keepalived+tomcat+memcache负载均衡搭建小集群

搭建Nginx+Tomcat 负载均衡集群

Tomcat +redis +nginx 搭建高性能负载均衡 集群