1. Tomcat 簡(jiǎn)介
Tomcat 是由Apache 軟件基金會(huì)下的項(xiàng)目, Tomcat 實(shí)現(xiàn)了 Servlet 和 JavaServer Page(JSP) 的支持, 提供了作為Web 服務(wù)器的功能, 由Tomcat 本身也內(nèi)含HTTP服務(wù)器, 也可以單獨(dú)視為Web服務(wù)器.
不可以把 Tomcat 和 HTTP服務(wù)器 混淆, Apache HTTP 服務(wù)器使用C 余元實(shí)現(xiàn)的 HTTP Web服務(wù)器, Apache Tomcat 包含了配置管理工具, 也可以通過(guò)XML 格式的配置文件來(lái)進(jìn)行配置.
Tomcat 提供了一個(gè)Jasper 編譯器, 用以將JSP 編譯成對(duì)應(yīng)的Servlet, Tomcat 的Sevelet 引擎通常用于引擎和 Apache 或者其他Web 服務(wù)器, 一起工作, 純用于開發(fā)過(guò)程調(diào)用以及那些對(duì)速度和事務(wù)處理只有很小要求的用戶, 很少會(huì)將 Tomcat 作為單獨(dú)的Web 服務(wù)器.
2. 配置 JAVA 環(huán)境
- 準(zhǔn)備安裝包
[root@node10009 src]# ls ./jdk-8u131-linux-x64.tar.gz
./jdk-8u131-linux-x64.tar.gz
- 解壓并移動(dòng)
[root@node10009 src]# tar zxf jdk-8u131-linux-x64.tar.gz
[root@node10009 src]# cp -r jdk1.8.0_131/ /opt/app/jdk1.8
- 修改環(huán)境變量
vim /etc/profile
# 底部增加
JAVA_HOME=/opt/app/jdk1.8
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$PATH:$JAVA_HOME/bin
- 測(cè)試
[root@node10009 app]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@node10009 app]#
3. Tomcat 安裝
- 下載
[root@node10009 src]# ls ./apache-tomcat-9.0.4.tar.gz
./apache-tomcat-9.0.4.tar.gz
[root@node10009 src]#
- 解壓
[root@node10009 src]# tar zxf apache-tomcat-9.0.4.tar.gz
[root@node10009 src]# ls -ld apache-tomcat-9.0.4
drwxr-xr-x 9 root root 160 Dec 25 22:00 apache-tomcat-9.0.4
- 將tomcat 移動(dòng)并拷貝
[root@node10009 src]# cp -r apache-tomcat-9.0.4 /opt/app/tomcat
[root@node10009 src]# cd /opt/app/tomcat/
[root@node10009 tomcat]# ls
bin conf lib LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt temp webapps work
- 啟動(dòng)
[root@node10009 app]# startup.sh
Using CATALINA_BASE: /opt/app/tomcat
Using CATALINA_HOME: /opt/app/tomcat
Using CATALINA_TMPDIR: /opt/app/tomcat/temp
Using JRE_HOME: /opt/app/jdk1.8
Using CLASSPATH: /opt/app/tomcat/bin/bootstrap.jar:/opt/app/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@node10009 app]# ss -tan | grep 80
LISTEN 0 100 :::8080 :::*
LISTEN 0 1 ::ffff:127.0.0.1:8005 :::*
LISTEN 0 100 :::8009 :::*
TIME-WAIT 0 0 ::1:42232 ::1:8009
TIME-WAIT 0 0 ::1:52006 ::1:8080
[root@node10009 app]#
- 測(cè)試
tomcat.png
4. 設(shè)置虛擬主機(jī)
- 修改配置文件
...
...
<!-- 虛擬主機(jī) -->
<Service name="testVhost">
<Connector port="800" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="809" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="testVhost" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="myapp"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="testVhost_access_log" suffix=".txt"
pattern="%{X-Real-IP}i %h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
...
- 添加測(cè)試項(xiàng)目
[root@node10009 tomcat]#
[root@node10009 tomcat]# ls myapp/
docs examples host-manager manager ROOT
[root@node10009 tomcat]# cat myapp/ROOT/index.jsp
<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<h1>Hello JSP</h1>
<%
out.print("test jsppage");
%>
[root@node10009 tomcat]#
- 重啟服務(wù)
[root@node10009 tomcat]# ./bin/catalina.sh stop
Using CATALINA_BASE: /opt/app/tomcat
Using CATALINA_HOME: /opt/app/tomcat
Using CATALINA_TMPDIR: /opt/app/tomcat/temp
Using JRE_HOME: /opt/app/jdk1.8
Using CLASSPATH: /opt/app/tomcat/bin/bootstrap.jar:/opt/app/tomcat/bin/tomcat-juli.jar
^[[A[root@node10009 tomcat]# ./bin/catalina.sh start
Using CATALINA_BASE: /opt/app/tomcat
Using CATALINA_HOME: /opt/app/tomcat
Using CATALINA_TMPDIR: /opt/app/tomcat/temp
Using JRE_HOME: /opt/app/jdk1.8
Using CLASSPATH: /opt/app/tomcat/bin/bootstrap.jar:/opt/app/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@node10009 tomcat]#
- 測(cè)試
jsp.png
5. 測(cè)試前端使用 Nginx 代理
- 編輯nginx 配置文件
- 添加
proxy_pass
將指定端口的請(qǐng)求轉(zhuǎn)發(fā)到后端的tomcat
- 添加
upstream localtomcat {
server 127.0.0.1:8080;
}
...
server {
listen 80;
server_name localhost;
location ~ .*$ {
proxy_pass http://localtomcat;
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;
client_max_body_size 10m;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 4k;
proxy_temp_file_write_size 64k;
}
}
...
- 修改tomcat 配置文件
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%{X-Real-IP}i %h %l %u %t "%r" %s %b" />
- 測(cè)試
n-t.png
END