Tomcat的实例配置

本文介绍如何在一台机器上配置Tomcat多实例,包括修改端口以启动多实例,以及如何设置反向代理集群实现负载均衡。通过复制程序文件、调整端口号和配置nginx负载均衡器,可以实现多站点运行和提高网站性能。

一、多实例配置

多实例(多进程):同一个程序启动多次,分为两种情况:
第一种:一台机器跑多个站点;
第二种:一个机器跑一个站点多个实例,配合负载均衡。
1、复制程序文件

[root@java-tomcat1 ~]# cd /data/application/
[root@java-tomcat1 application]# ls
tomcat
[root@java-tomcat1 application]# cp -r tomcat/ tomcat_2
[root@java-tomcat1 application]# ls
tomcat  tomcat_2
修改端口,以启动多实例。多实例之间端口不能一致
[root@java-tomcat1 application]# sed -i 's#8005#8011#;s#8080#8081#' tomcat/conf/server.xml
[root@java-tomcat1 application]# sed -i 's#8005#8012#;s#8080#8082#' tomcat_2/conf/server.xml
[root@java-tomcat1 application]# sed -i 's#8009#8019#' tomcat/conf/server.xml
[root@java-tomcat1 application]# sed -i 's#8009#8029#' tomcat_2/conf/server.xml
[root@java-tomcat1 application]# diff tomcat/conf/server.xml tomcat_2/conf/server.xml  #对比文件不同之处
22c22
< <Server port="8011" shutdown="SHUTDOWN">
---
> <Server port="8012" shutdown="SHUTDOWN">
67c67
<          Define a non-SSL/TLS HTTP/1.1 Connector on port 8081
---
>          Define a non-SSL/TLS HTTP/1.1 Connector on port 8082
69c69
<     <Connector port="8081" protocol="HTTP/1.1"
---
>     <Connector port="8082" protocol="HTTP/1.1"
75c75
<                port="8081" protocol="HTTP/1.1"
---
>                port="8082" protocol="HTTP/1.1"
115,116c115,116
<     <!-- Define an AJP 1.3 Connector on port 8019 -->
<     <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
---
>     <!-- Define an AJP 1.3 Connector on port 8029 -->
>     <Connector port="8029" protocol="AJP/1.3" redirectPort="8443" />

启动tomcat多实例:

[root@java-tomcat1 application]# cp -r /opt/webapps/ROOT/ tomcat/webapps/
[root@java-tomcat1 application]# cp -r /opt/webapps/ROOT/ tomcat_2/webapps/
[root@java-tomcat1 application]# echo 8081 >> tomcat/webapps/ROOT/index.jsp 
[root@java-tomcat1 application]# echo 8082 >> tomcat_2/webapps/ROOT/index.jsp
启动:
[root@java-tomcat1 application]# /data/application/tomcat/bin/startup.sh
[root@java-tomcat1 application]# /data/application/tomcat_2/bin/startup.sh

二、tomcat反向代理集群

1、负载均衡说明:

[root@nginx-proxy ~]# cd /etc/nginx/conf.d/
[root@nginx-proxy conf.d]# cp default.conf default.conf.bak
[root@nginx-proxy conf.d]# mv default.conf tomcat.conf
[root@nginx-proxy conf.d]# vim tomcat.conf
upstream testweb {
	server 192.168.50.114:8081 weight=1 max_fails=1 fail_timeout=2s;
	server 192.168.50.114:8082 weight=1 max_fails=1 fail_timeout=2s;
}
server {
    listen       80;
    server_name  localhost;
    access_log  /var/log/nginx/proxy.access.log  main;

    location / {
       proxy_pass http://testweb;
       proxy_set_header Host $host:$server_port;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }       
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    } 
}

重启nginx负载均衡服务器

[root@nginx-proxy ~]# systemctl start nginx
多个Tomcat实例配置不同的`CATALINA_BASE`时,需要注意以下几点: ### 路径独立性 每个`CATALINA_BASE`必须指向独立的目录,避免不同实例之间的文件相互干扰。例如,一个实例的`CATALINA_BASE`为`/opt/tomcat_instance1`,另一个为`/opt/tomcat_instance2`。每个实例的`conf`、`logs`、`temp`、`webapps`和`work`目录都应是独立的,如同Windows下Tomcat实例的目录结构中,`instance0`和`instance1`各有独立的这些子目录[^1]。 ### 端口配置 不同实例的`server.xml`文件中,不能有重复的端口号。常见需要修改的端口有: - `HTTP`连接器端口(默认8080) - `AJP`连接器端口(默认8009) - `Shutdown`端口(默认8005) 若不修改,会导致端口冲突,使Tomcat无法正常启动。例如,将一个实例的`HTTP`端口改为8081,`AJP`端口改为8010,`Shutdown`端口改为8006。 ### 环境变量设置 在启动每个Tomcat实例时,要正确设置`CATALINA_BASE`环境变量。可以在启动脚本(如`startup.sh`或`startup.bat`)中添加相应的设置。如在`startup.sh`中添加: ```bash export CATALINA_BASE=/opt/tomcat_instance1 ``` 确保每个实例的启动脚本设置的`CATALINA_BASE`是对应的实例目录。 ### 资源隔离 虽然每个实例有独立的`CATALINA_BASE`,但要注意系统资源的使用。例如,多个实例运行可能会占用大量的内存和CPU资源,需要根据服务器的实际情况进行合理配置。可以通过设置`CATALINA_OPTS`来调整JVM参数,控制每个实例的内存使用。如: ```bash export CATALINA_OPTS="-Xms512m -Xmx1024m" ``` ### 日志管理 每个实例的日志文件存放在各自`CATALINA_BASE`下的`logs`目录中。要定期清理日志文件,防止磁盘空间被占满。可以编写脚本进行定时清理。 ### 配置文件差异 虽然`CATALINA_BASE`下的`conf`目录是独立的,但要根据实例的具体需求进行配置。不同实例可能有不同的`context.xml`、`web.xml`等配置,要确保这些配置符合实例的功能要求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值