Tomcat服務配置
1、Tomcat概述以及運行原理
2、Tomcat環境搭建
3、Tomcat的配置詳情
單點登錄
多域名訪問
Tomcat性能調優
概念和原理
1、Apache軟件基金會
2、開源軟件
3、中小型應用服務器
Tomcat市場佔比
核心組件 Connector 和 Container
Connector組件
1、接收客戶端連接
2、加工處理客戶端請求
Container
1、所有的子容器的父接口
2、責任鏈涉及模式
tomcat的環境安裝_windows
如果出現亂碼該怎麼解決
tomcat默認的是utf-8,而電腦的編碼是GB2312
解決辦法:找到loging.properties後,將UTF-8修改爲GB2312
tomcat的環境安裝_linux 與windows差別不大
目錄說明
conf
catalina.policy:主要是用來防止JSP代碼或者用戶代碼破壞tomcat的容器
catalina.properties:主要是不能被jsp或者serverlet修改的jar的列表
context.xml:有關於web服務的web.xml的文件位置
logging.properties:配置了日誌輸出格式等內容
server.xml:是tomcat中最主要的配置文件,在tomcat啓動的時候,去構建tomcat容器
tomcat-users.xml:人員或者管理員的信息
web.mxl:配置一些啓動信息
lib
是一個共享jar包,也可以放置一些其他的JAR包
logs
在tomcat運行過程中形成的日誌
webapps
ROOT目錄是一個根目錄
work
主要用於存放一些編譯的文件
修改tomcat端口號
配置端口號
端口範圍:1-65535
port8080:建立http服務
port8005:SHUTDOWN端口監聽關閉tomcat請求
port8009:AJP服務,把tomcat與其他的服務器集成
修改內存
內存模型
1、堆內存 2、棧內存 3、靜態內存區
OutOfMemoryError:Java heap space異常 項目中引用的JAR比較多,導致內存溢出, 默認最大爲內存的1/4,最小爲內存的64/1
OutOfMemoryError:PermGen space異常 通常是由於加載的類過多導致的
StackOverflowError異常 通常是由於死循環或者是無限遞歸導致
set JAVA_OPTS="-server -Xms256m -Xmx512m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=256m"
熱部署
什麼是熱部署
如何配置熱部署
1、直接將war包丟進webapps裏面
2、server.xml
添加
<context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true">
3、在\conf\Catalina\localhost文件夾底下
放置一個xml文件,比如demo2.xml
添加
<?xml version="1.0" encoding="UTF-8"?>
<context debug="0" docBase="D:\demo1\web" reloadable="true">
數據庫連接池與數據源
什麼是連接池
如何配置數據源
Web管理
1、管理界面功能簡述
2、使用tomcat管理界面發佈項目
最核心的三個內容是Server Status、Manager APP、Host Manager
我們首先選擇Manage APP,彈出
選擇取消後,出現
複製內容到tomcat-user.xml文件下
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
單點登錄
1、什麼是單點登錄
單點登錄(Single Sign On),簡稱爲SSO,是目前比較流行的企業業務整合的解決方案之一。
SSO的定義是在多個應用場景中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。
CAS
1、開源的企業級單點登錄解決方案
2、CAS Server 和 CAS Client
2、單點登錄的應用場景
3、如何配置Tomcat單點登錄
開源CAS
配置https
多域名訪問
1、提高資源利用率
2、如何配置多域名訪問
host 標籤內 appbase 屬性 項目路徑,autodeploy='true'熱部署,name屬性,映射的ip 名
也可以在context 標籤內 加 reload='true'
基於IP
基於端口
關閉shutdown端口
1、安裝後初始化配置
(1)關閉服務器端口 (2)隱藏版本信息 (3)禁用Tomcat管理頁面
(4)自定義錯誤頁面 (5) AJP端口管理 (6)啓用cookie的HttpOnly
關閉服務器端口
輸入SHUTDONW則關閉,如果通過安全的角度上來說,需要把這個SHUTDONW的指令改成別人不容易猜測到的指令
解決辦法:修改SHUTDOWN命令以及修改端口號
修改後
輸入SHUTDOWN無法關閉
2、安全規範
修改版本號
爲了防止黑客攻擊,隱藏tomcat版本信息
修改後
禁用TOMCAT管理界面
防止黑客通過tomcat管理界面去攻擊服務器
解決 辦法:將ROOT文件夾改名爲ROOT_1,再新建一個ROOT文件
再訪問管理頁面時會出現404
自定義錯誤頁面
直接報404不存在,頁面不友好
在web.xml下配置
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
AJP協議
爲tomcat和http服務器通信而定製的協議,可以提供比較高的通信協議,如果tomcat前端使用的是apache連接器的時候,會使用到AJP連接器,如果是使用Nginx做的反向代理的話,就可以不使用AJP連接器
不使用AJP連接器,則將其註釋即可(只適用於Nginx反向代理)
修改Cookies安全性
啓用cookie的HttpOnly,因爲使用這個屬性,可以提供cookie的安全性
1、保存在客戶端的純文本文件(服務器端寫入客戶端)
2、cookie實現離線購物車
3、XSS-跨站腳本攻擊
解決辦法:
context.xml文件下,Context節點 增加屬性 useHttpOnly="true"
tomcat安全規範
1、賬號管理、認證授權
(1)共享、無關賬號
訪問hots-manager權限拒絕
解決辦法:
(2)口令密碼
(3)用戶權限
2、日誌配置操作
在server.xml裏面有一個日誌記錄的功能
3、設備其他配置操作
對於具備字符串交互的用戶,也就是數據交互 的界面,應該支持定時的賬戶自動登出,來保證數據的安全性
在server.xml裏面,找到Connector裏面的connectionTimeout
tomcat性能優化
緩存優化(nginx、gzip)
運行模式
(1)BIO:tomcat7以下默認模式
(2)NIO:基於緩存區、非阻塞的I/O
(3)APR:tomcat7及以上默認模式
Tomcat總結
1、tomcat概念、運行原理
2、環境搭建、部署
3、Tomcat常用配置
4、單點登錄、多域名訪問等(實際開發使用較多的是redis)
5、安全規範、性能優化