Tomcat 是 Java web 服务器中使用最广的中间件,jsp 必须要使用类似 Tomcat 这样的程序进行解析。
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
1、下载
wget -c http://file201503.oss-cn-shanghai.aliyuncs.com/ftp/jdk-8u151-linux-x64.tar.gz
2、解压后放到/usr/local/下
mv jdk1.8.0_151/ /usr/local/jdk18
3、配置环境变量
vim /etc/profile
输入
export JAVA_HOME=/usr/local/jdk18
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存后执行
source /etc/profile
1、打开官网下载
wget -c http://supergsego.com/apache/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.29.tar.gz
解压后复制3份分别为 Tomcat1 Tomcat2 Tomcat3
[root@centos ~]# cd /usr/local/tomcat
tomcat1/ tomcat2/ tomcat3/
分别修改3个目录下 conf 下的 server.xml 端口为 8080、8081、8082
<Connector
/>
启动 3 个 Tomcat
[root@centos bin]# ./catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat1
Using CATALINA_HOME: /usr/local/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomcat1/temp
Using JRE_HOME: /usr/local/jdk18
Using CLASSPATH: /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar
Tomcat started.
Tomcat 目录说明:
bin:二进制执行文件。里面最常用的文件是startup.bat,如果是 Linux 或 Mac 系统启动文件为 startup.sh。
conf:配置目录。里面最核心的文件是server.xml。可以在里面改端口号等。默认端口号是8080,也就是说,此端口号不能被其他应用程序占用。
lib:库文件。tomcat运行时需要的jar包所在的目录
logs:日志
temp:临时产生的文件,即缓存
webapps:web的应用程序。web应用放置到此目录下浏览器可以直接访问
work:编译以后的class文件。
如果要使用80端口访问域名则配置
<Connector
/>
……
<Host
>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using -->
<Valve
/>
<Context path="" />
</Host>
在 nginx http 段加入
http {
upstream tomcatcluster {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
……
在 server 段配置,这里我配置了80端口跳443,并且加了 ssl 证书
server {
listen 80;
server_name _;
server_name www.v5linux.com v5linux.com;
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
rewrite ^(.*)$ https://www.v5linux.com$1 permanent;
}
server {
listen 443;
server_name www.v5linux.com;
ssl on;
ssl_certificate //usr/local/nginx/ssl/v5linux/fullchain.cer;
ssl_certificate_key /usr/local/nginx/ssl/v5linux/v5linux.key;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets on;
resolver 114.114.114.114 valid=300s;
resolver_timeout 10s;
access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcatcluster;
}
}
开放防火墙
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
做好解析,并确认
# dig www.v5linux.com
; <<>> DiG 9.10.6 <<>> www.v5linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62933
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.v5linux.com. IN A
;; ANSWER SECTION:
www.v5linux.com. 0 IN A 59.111.92.121
;; Query time: 12 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Apr 04 14:00:14 CST 2018
;; MSG SIZE rcvd: 49
浏览器访问
发现没有问题
Tomcat 自身配 ssl 证书,可以在 server.xml 中这段进行配置
<Connector
>
<SSLHostConfig>
<Certificate
/>
</SSLHostConfig>
</Connector>
Tomcat 默认的路径是在 Tomcat 的目录下的 webapps ,可以在配置文件中修改
<Host
>
我们将其修改为
<Context path="" />
创建 data 目录
mkdir /data/
然后新建一个 jsp 文件
<%@ page %>
<%
out.print("test");
%>
访问
修改Tomcat的内存配置,打开$TOMCAT_HOME/bin/catalina.sh文件(Windows系统是catalina.bat文件),大楖在250行左右,在JAVA_OPTS参数上添加内存参数设置即可。完整的JVM参数设置如下所示:
JAVA_OPTS="$JAVA_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"
-server参数:表示以服务模式启动,启动速度会稍微慢一点,但性能会高很多。不加这个参数,默认是以客户端模式启动。
java.awt.headless=true参数:与图形操作有关,适用于linux系统。如生成验证码,含义是当前使用的是没有安装图安装图形界面的服务器,应用中如果获取系统显示有关参数会抛异常,可通过jmap -heap proccess_id查看设置是否成功。
修改后
主要配置Tomcat能处理的请求数,当一个进程的线程数超过500个的话,那么这个进程的运行效率就很低了。表面上看线程越多处理的请求越多,其实过多的线程会占用CPU在不同线程之间切换的资源,导致CPU在每个线程上处理的时间片极期有限,反而会降低服务器的响应性能。
<Connector
/>
Tomcat的并发请求处理数量=maxThreads + acceptCount
更多参数设置,请参考Tomcat官方文档:http://tomcat.apache.org/tomcat-8.0-doc/config/http.html