环境: CentOS 7 x86_64
1、安装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 /apache/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
|
(如果想起用apr模式,需要安装apr-devel、tomcat-native两个软件包,无需改配置)
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
[Unit] Description=Apache Tomcat 7 After=network.target [Service] Type=oneshot ExecStart= /opt/tomcat01/bin/startup .sh
ExecStop= /opt/tomcat01/bin/shutdown .sh
RemainAfterExit= yes
User=tomcat Group=tomcat [Install] 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、日志轮转
由于tomcat是作为后台服务持续运行,天长日久,日志必定会越来越大,在当初部署tomcat之时很容易忽略这个问题,否则硬盘迟早会被撑爆。
创建文件/etc/logrotate.d/tomcat,内容如下:
1
2
3
4
5
6
7
8
9
10
11
|
/opt/tomcat01/logs/catalina.out /opt/tomcat02/logs/catalina.out { copytruncate
daily
rotate 7
missingok
notifempty
compress
create 0644 tomcat tomcat
} |
6、查看进程
1
|
ps aux | grep tomcat
|
附上一份nginx反向代理tomcat的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=static:10m inactive=30d 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 7d;
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;
}
} |
本文理论上也适用于tomcat8,未经测试。
本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1702292,如需转载请自行联系原作者