23112312 发表于 2015-11-16 10:42:48

centos7下systemd实现tomcat多实例

环境: CentOS 7 x86_641、安装jdk
1
rpm -ivh jdk-8u60-linux-x64.rpm

2、创建普通用户
1
2
getent group tomcat || groupadd -r tomcat
getent passwd tomcat || useradd -r -d /opt -s /bin/nologin tomcat

3、下载tomcat 7
1
2
3
4
5
6
7
8
9
cd /opt
wget http: //mirrors .ustc.edu.cn/<a href= "http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=apache" class="bdcs-inlinelink" target= "_blank" >apache< /a > /tomcat/tomcat-7/v7 .0.64 /bin/apache-tomcat-7 .0.64. tar .gz
tar zxvf apache-tomcat-7.0.64. tar .gz
mv apache-tomcat-7.0.64 tomcat01
chown -R tomcat:tomcat tomcat01
tar zxvf apache-tomcat-7.0.64. tar .gz
mv apache-tomcat-7.0.64 tomcat02
chown -R tomcat:tomcat tomcat02

两个实例同时监听8080端口必然会产生冲突,所以必须修改.
1
2
3
4
sed -i 's/8080/8081/g' /opt/tomcat01/conf/server .xml
sed -i 's/8005/8001/g' /opt/tomcat01/conf/server .xml
sed -i 's/8080/8082/g' /opt/tomcat02/conf/server .xml
sed -i 's/8005/8002/g' /opt/tomcat02/conf/server .xml

AJP通常用不上,这里统一关闭
1
2
sed -i '/8009/d' /opt/tomcat01/conf/server .xml
sed -i '/8009/d' /opt/tomcat01/conf/server .xml

tomcat在Linux 下默认工作模式是bio,性能非常低,建议使用apr或者nio,这里改为nio,即非阻塞IO,性能比较好。
1
2
sed -i.bak 's#HTTP/1.1#org.apache.coyote.http11.Http11NioProtocol#' /opt/tomcat01/conf/server .xml
sed -i.bak 's#HTTP/1.1#org.apache.coyote.http11.Http11NioProtocol#' /opt/tomcat02/conf/server .xml

3、创建启动文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd /usr/lib/systemd/system
cat >tomcat01.service <<EOF

Description=Apache Tomcat 7
After=network.target

Type=oneshot
ExecStart= /opt/tomcat01/bin/startup .sh
ExecStop= /opt/tomcat01/bin/shutdown .sh
RemainAfterExit= yes
User=tomcat
Group=tomcat
[<a href= "http://so.21ops.com/cse/search?s=9181936462520079739&entry=1&q=Install" class= "bdcs-inlinelink" target="_blank" >Install< /a >]
WantedBy=multi-user.target
EOF

tomcat02同理
1
sed 's/tomcat01/tomcat02/g' tomcat01.service > tomcat02.service

4、启动服务
1
2
3
4
systemctl enable tomcat01
systemctl enable tomcat02
systemctl start tomcat01
systemctl start tomcat02

5、查看进程ps aux |grep tomcat附上一份nginx反向代理tomcat的配置文件proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=static:10m inactive=1h max_size=1g;
upstream tomcat {ip_hash ;#hash $remote_addr consistent;server 127.0.0.1:8081 max_fails=1 fail_timeout=2s ;server 127.0.0.1:8082 max_fails=1 fail_timeout=2s ; ;keepalive 16;}
server {listen 80;server_name tomcat.example.com;
charset utf-8;access_log /var/log/nginx/tomcat.access.log main;root /usr/share/nginx/html;index index.html index.htm index.jsp;
location / {proxy_pass http://tomcat;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;proxy_http_version 1.1;proxy_set_header Connection "";
add_header X-Backend "$upstream_addr";}
location ~* ^.+.(js|css|ico|gif|jpg|jpeg|png)$ {proxy_pass http://tomcat ;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;proxy_http_version 1.1;proxy_set_header Connection "";
proxy_cache static;proxy_cache_key $host$uri$is_args$args;proxy_cache_valid 200 302 5m;proxy_cache_valid 404 1m;proxy_cache_valid any 1h;add_header X-Cache $upstream_cache_status;
#log_not_found off;#access_log off;expires max;}
location ~ /.ht {deny all;}
}如果想深入体验LINUX系统的新手,也可以先下载一个方德Linux软件中心试用一下。
页: [1]
查看完整版本: centos7下systemd实现tomcat多实例