利用nginx搭建tomcat集群

时间:2023-03-09 16:58:59
利用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复制一份

 cd /usr/local/tomcat/                                     # 进入tomcat所在目录
cp -r tomcat8080/ tomcat8081 # 复制一份新的tomcat
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配置文件。

 user  nginx;
worker_processes 1; error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info; pid logs/nginx.pid; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; server_names_hash_bucket_size 256;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
server_tokens off;
send_timeout 60;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_header_timeout 3m;
client_body_timeout 3m;
client_max_body_size 2000m;
gzip on; # tomcat集群
#
upstream tomcat {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
} # HTTPS服务器
#
server {
listen 80;
listen 443 ssl;
server_name www.origal.cn; ssl_certificate /usr/local/nginx/conf/ssl/214324938610703.pem;
ssl_certificate_key /usr/local/nginx/conf/ssl/214324938610703.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
index index.jsp; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
client_max_body_size 500m;
client_body_buffer_size 3m;
proxy_connect_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 6 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k; if (!-e $request_filename) {
proxy_pass http://tomcat;
}
} # 静态资源直接访问
location ~ \.(js|css|png|gif|jpg|jpeg|mp4|mp3|mpg|3gp|txt)$ {
root /usr/local/java/tomcat8080/webapps/;
if (!-e $request_filename) {
proxy_pass http://tomcat;
}
}
}
}