tomcat的管理功能
- 如圖,訪問tomcat 的默認管理頁面
- 能夠看到右邊有 三個選項,這三個選項是用來管理tomcat服務器的
- 可是如今還不可使用,須要先配置一下
- 首先配置 host manager
- cd /usr/local/tomcat/conf/
- vim tomcat-user.xml 編輯配置文件
- 如圖,在 tomcat-users 標籤的上面一行插入代碼
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat123" roles="admin-script,admin-gui"/>
- 如圖,代碼定義了兩個 role
- 還定義了帳號密碼
- 由於 host manager 功能須要用到這兩個role
- 保存退出
- 而後須要重啓 tomcat
- cd /usr/local/tomcat/bin/
- 使用命令 ./shutdown.sh 關閉tomcat
- 而後 ./startup.sh 開啓tomcat
- 這樣就算重啓了tomcat ,每次修改配置文件都須要這樣重啓一下tomcat
- cd /usr/local/tomcat/webapps/host-manager/META-INF/
- 這個目錄裏面有一個文件叫作 context.xml
- 如圖,這裏能夠定義哪一個ip地址能夠訪問,這裏沒有定義的ip就不能夠訪問
- 如圖,在原來的放行名單後面加上 |192.168.64.\d+
- 由於這裏定義的時候可使用正則表達式
- 正則表達式裏面 . 表明任意一個字符
- 因此要被識別爲 . 而不是其它意思的話,前面要加 \ 轉義
- 符號 \d+ 表示1個或多個數字
- 符號 | 表明或者
- 加在原來字符的後面表示在原來的通行條件上
- 加上後面這一段通行條件
- 也就是 192.168.64.xxx 這個網段的 ip 均可以放行
- 保存退出,重啓 tomcat
- 如今點擊 host manager 按鈕
- 會要求輸入帳號密碼
- 帳號密碼就是上面配置文件裏面定義的帳號密碼 tomcat 和 tomcat123
- 如圖,輸入帳號密碼後,就能夠進入這個管理界面
- 若是不進行上面配置的話,這裏就變成 403 了
- 如圖,這個管理頁面能夠管理tomcat裏面的虛擬主機
- 能夠看到 zrblog.com 是以前配置好的虛擬主機
- 這裏若是點擊中止,那麼這個虛擬主機就會被 tomcat 中止
- 而後就不能夠被訪問了,固然,還能夠再次點擊打開虛擬主機
- 這樣就又能夠訪問了
- 還能夠在這個頁面添加虛擬主機
- 如圖,這裏添加 域名,別名,點擊添加就能夠添加一個虛擬主機
- 如圖,這裏添加了一個 bbb 虛擬主機
- 如圖,訪問 www.bbb.com 顯示 404
- 這是正確的,由於這個域名下面什麼都沒有,因此是404
- 經過這個方法添加的虛擬主機,tomcat重啓以後就會消失
- 由於這種方法添加的虛擬主機並無保存到配置文件裏面
- 可是 web 頁面添加的虛擬主機實際上並無消失
- 因此重複添加同一個域名的虛擬主機是不行的
- /usr/local/tomcat/conf/Catalina/ 這個目錄裏面有web頁面添加的虛擬主機的目錄
- 如圖,cd /usr/local/tomcat/conf/Catalina/ 進入這個目錄
- 能夠看到 www.aaa.com 和 www.bbb.com 目錄
- 這兩個目錄裏面就是自動建立的
- 在 web 頁面添加的虛擬主機都會在這裏自動建立本身的目錄
- 這麼目錄是永久存在的,可是添加的虛擬主機重啓後就消失了
- 要解決這個問題
- cd /usr/local/tomcat/conf/
- vi server.xml
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
- 上面這段代碼添加到 server.xml 裏面
- 如圖,代碼添加到圖中的位置
- 在 8005 的代碼塊裏面
- 保存退出,重啓 tomcat
- 如圖,從新添加虛擬主機,應用程序庫實際上就是網站程序的路徑
- 隨便寫一個 /data/www.aaa.com/ 路徑,而後添加
- 如圖,出現 403 ,看返回的信息,彷佛要用到 manager 的一個配置文件
- 因此要想實現頁面添加虛擬主機,永久保存,還須要使用 manager
- 因此還要配置一下 manager ,使 manager 可用才行
- cd /usr/local/tomcat/conf/
- vim tomcat-user.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
- 如圖,添加 4個 manager 的role
- 下面的 user標籤裏面的 roles 也要加上新添加的 rolename
- 其實只添加 manager-gui 和 manager-script 也能夠
- 若是遇到提示須要添加後面兩個 role 的狀況,再加上去也行
- 保存退出
- cd /usr/local/tomcat/webapps/manager/META-INF/
- vi context.xml
- 如圖,添加這一段
|192\.168\.64\.\d+
- 這是容許 192.168.64.xxx 網段的 ip 訪問 manager
- 這裏不設置放開的網段的話,就訪問不了
- 這裏能夠設置容許哪一個 ip 訪問,或者哪一類ip訪問,可使用正則表達式
- 保存退出,重啓tomcat
- 如今就能夠訪問 manager 了,也能夠持久化保存新增的 虛擬主機
- 能夠 vi conf/server.xml 查看虛擬主機配置文件
- 裏面會有新增的虛擬主機的信息
- 如圖,新增虛擬主機後,尚未保存到配置文件裏面
- 須要點擊下面的 持久化配置 所有 那個按鍵,纔會保存到配置文件裏面
- 保存以後,能夠到 server.xml 文件裏面查看,新增的虛擬主機信息會寫入裏面
- 如圖,如今能夠訪問manager
- 這裏能夠看到,webapps 根目錄,docs 目錄... 等目錄
- 能夠對這些目錄進行管理
- 由於這個頁面就是 manager 本身,因此在這個頁面是不能關閉 manager的
- 若是在這個頁面 stip host-manager
- 再訪問 host-manager 就會變成 404 沒法訪問了
- 如圖,這裏能夠指定 war 包的路徑進行 war 包部署
- 下面的功能是在這裏上傳 war 包,讓 tomcat 自動部署
tomcat的日誌
- 如圖,cd /usr/local/tomcat/logs/
- 能夠看到目錄內的文件
- 主要是5個類型,catalina , host-manager, localhost, localhost-access, manager
- host-manager 記錄一些 host-manager頁面的操做
- manager日誌記錄一些 manager頁面的操做信息
- localhost-access 記錄訪問服務器的信息
- localhost 記錄一些服務器自己的信息
- catalina.2019-12-16.log 記錄的內容跟 catalina.out 是同樣的
- 因此若是要查看最新的 catalina 日誌信息
- 直接看 catalina.out 就好了
- catalina.out 記錄不少信息,包括服務器運行的錯誤信息,網站運行的錯誤信息
- 因此平時查找錯誤,主要是看 catalina.out 日誌
- 可是 catalina.out 有一個問題
- 這個文件只會不斷的寫入,是不會進行日誌切割的
- 因此若是不處理,這個文件會無限變大
- 實際使用中,應該根據須要,按期把這個文件進行清空
- 可使用任務計劃來按期清空這個文件
- 任務計劃就是,系統能夠在你自定義的時間內作事情
- 使用 crontab -e 回車
- 就會進入 vi 的界面
- 而後再裏面寫要執行的任務,寫完保存退出
- 系統就會按期執行裏面的內容
- 若是格式不正確,就沒法保存退出,系統會提示
- 如圖,這就是任務計劃的格式
- 前面 五位 分別是 分時日月周 的意思
- 這裏 0 3 * * * 就是天天 3點 執行的意思
- 後面3位由於不須要設置,因此就用星號 * 代替
- 設置了時間,後面就是要執行的命令
- 如圖,還有不一樣的寫法,能夠表明不一樣的意義
- 好比在 時 的位置寫 1,2,3 就表示天天的 1點,2點,3點執行
- 若是想每5分鐘執行一次
- 能夠在分的位置寫 */5
- 這個寫法就表示,能夠整除 5 的分鐘數就會執行後面的命令
- 也就至關於,每5分鐘執行一次命令了
- 0 8-10 * * * 這表示 天天 8點,9點,10點執行後面的命令
- 周 的位置,表示的是星期幾
- 因此能夠寫 1-7 表示 星期一 到 星期日
- 也能夠寫爲 0-6 也表示 星期一 到 星期日
- 如圖,這就是 每5天 清空一次 catalina.out 的任務計劃
- 如圖不使用任務計劃,也可使用系統的日誌切割功能來處理這個日誌文件
- 如圖,vim /etc/logrotate.d/tomcat 在這個目錄內編輯一個叫作 tomcat 的空文件
- 如圖,空文件內寫入圖中的內容,保存退出
- 這樣系統的日誌切割服務,就會按照文件中設置的參數對catalina.out進行日誌切割
- 圖中,daily 表示天天切割,size 16M 表示文件大小超過 16M 就切割日誌
- 可是這兩個參數同時存在的時候,以 size 爲主
- 也就是說,這個文件小於 16M 的時候,次日也不會被切割
ftp服務
- ftp服務能夠在兩臺電腦之間進行上傳下載的操做
- 大公司比較少用,由於ftp協議安全性不夠好
- 可是中小型公司會可能會用到,安全性要求不那麼高
- 並且電腦之間傳輸文件也很方便
- 首先安裝一個擴展的源
yum install -y epel-release
- 要先安裝這個擴展源,才能安裝 pure-ftpd 服務
- 而後
yum install -y pure-ftpd
- 這裏使用的是 pure-ftpd 來提供 ftp 服務
- vi /etc/pure-ftpd/pure-ftpd.conf 編輯pure-ftpd 的配置文件
- 如圖,配置文件裏面這個 MinUID 是定義使用這個服務的用戶的最小uid
- 這裏設置的是 1000
- 意思就是 只有 uid >= 1000 的用戶,纔可使用這個ftp服務
- 小於1000的就會報錯
- 出於安全的緣由,uid 小的都是系統用戶,權限都比較高
- 限制uid 大於1000 能夠防止權限太大的用戶使用ftp服務,增長安全性
- 如圖,找到 PureDB 這一行
- 把前面的井號 # 去掉,這裏井號的做用是註釋
- 前面有井號的行是不起做用的
- 因此把這一行前面井號去掉,讓這一行產生做用
- PureDB 的做用是指定一個文件路徑
- 之後用戶名密碼之類的信息就會被保存到這個文件裏面
- 上面的mysql和postgreSQL 也能夠設置保存這些信息
- 可是設置數據庫太麻煩,直接用 puredb本身的文件保存就行了,這樣最簡單
- 而後保存退出
- 如圖,建立一個用戶 ftpuser
- id ftpuser 查看用戶的 uid
- 能夠看到是 1013 大於1000
- 這樣就能夠正常使用 ftp 服務,若是小於1000就不能正常使用ftp服務
- 如圖,建立一個測試目錄 /data/ftp/
- 使用這個目錄進行文件的傳輸
- 而後把這個目錄的全部者所屬組修改成 ftpuser
- 由於原本是root建立的,可是 ftpuser要使用這個目錄傳輸文件權限不夠
- 因此修改成 ftpuser ,這樣權限就夠了
- 如圖,使用這個命令建立一個 ftp服務的虛擬用戶 user1
- user1 並非系統真實存在的用戶,可是又須要系統用戶權限來進行一些操做
- 因此這個 user1 須要映射到一個系統真實存在的用戶上去
- ftpuser 就是系統真實存在的用戶,這裏把user1映射到ftpuser上去
- 這樣user1的權限就等於ftpuser了,後面是指定 /data/ftp/ 目錄爲文件傳輸目錄
- 意思就是 user1 使用這個目錄進行文件傳輸
- 而後回車,下面還要輸入兩次自定義密碼
- 這樣就設置了一個ftp服務內部的 用戶名跟密碼了
- 可是如今這個用戶名跟密碼尚未被保存
- 如圖,還須要使用 pure-pw mkdb 建立保存用戶名密碼的數據庫文件
- 使用這個命令後,就會建立剛纔在配置文件裏面指定的路徑的文件
- 也就是 /etc/purt-ftpd/pureftpd.pdb 這個文件
- 這個文件是 ftp服務本身的文件格式,沒法使用 cat 查看
- 如圖,使用 systemctl 啓動 ftp 服務
- netstat 查看監聽的端口,這裏是 21 端口
- 因此係統防火牆還須要放開 21 端口,服務才能正常運做
- 如圖,
firewall-cmd --add-port=21/tcp --permanent
- 開放21端口
- 而後
firewall-cmd --reload
重載配置文件
- 這樣21端口就放開了
- 這樣 ftp服務就能夠正常運行了
測試登陸 ftp
- 如今服務器的 ftp 服務已經裝好了
- 要測試這個 ftp 服務是否正常運轉
- 須要下載一個ftp客戶端工具
yum install -y lftp
- 咱們安裝的ftp服務是服務端的
- 因此須要一個客戶端才能夠測試服務端的ftp是否正常
- 這個 lftp 就是一個客戶端工具,能夠模擬客戶端與服務端進行交互
- 如圖,安裝 lftp以後
- 使用 lftp user1@127.0.0.1 登陸 user1
- 口令輸入剛纔設置的user1密碼 123
- 回車進入 user1 的命令界面
- 使用 ls 命令查看默認目錄裏面有什麼文件
- 這個默認目錄就是剛纔設置的 /data/ftp 目錄
- 能夠看到有 . 和 .. 分別表明目錄自己和上一級目錄
- 這樣就表示 user1 目錄正常
- 如圖,使用 exit 退出user1用戶界面
- cd /data/ftp 而後建立 1.txt 文件
- 使用 echo 輸入一些數據進入這個文件
- 如圖,再使用 lftp 登陸 user1 用戶
- 使用 ls 查看,能夠看到多了一個 1.txt文件
- 可是這個文件的全部者跟所屬組是 root 用戶
- pureftp 的特色,這裏能夠看到 ,全部者顯示爲 uid 數字
- 所屬組則是顯示爲 文字,也就是具體的所屬組,而不是 gid
- 這樣本地命令行測試就算成功了
- 還須要進行遠程測試看是否成功
- 如圖,可使用 fillzilla 做爲客戶端進行測試
- 因此,咱們下載 客戶端的版本,不要下載服務端的
- 如圖,filezilla 打開的界面
- 如圖,點擊這裏,設置鏈接
- 如圖,這裏要設置一個新站點
- 而後右邊填寫信息
- ip是服務器的ip地址,端口是 21
- 用戶名是 user1 密碼是 123
- 如圖,ftp 分爲主動和被動模式,有時候 默認的模式可能沒法鏈接
- 這裏選擇 主動模式
- 如圖,選擇鏈接,能夠看到鏈接成功
- 服務器目錄裏面的文件 1.txt 也顯示出來了
- 如圖,左邊選擇一個目錄 desktop 也就是桌面
- 右邊雙擊服務器目錄裏面的 1.txt
- 這樣 1.txt 文件就被下載回來了
- 如圖,能夠看到桌面文件已經有 1.txt了
- 一樣的,在左邊的文件上面雙擊,就能夠把文件上傳到服務器上的目錄裏
- 如圖,若是出現這個錯誤
- 要勾選這裏限制併發鏈接數
- 端口那裏再輸入 21
- 還有另一種傳輸協議叫作 SFTP
- 這個協議是使用 ssh 協議進行文件的傳輸,而不是 ftp協議
- 因此使用 SFTP 協議傳輸文件使用的端口是 ssh 服務的 22 端口
- filezilla 和 xftp 這兩個軟件均可以使用 SFTP 協議傳輸文件
- filezilla 是開源免費的,xftp 和 xshell 是同一個公司的,須要付費使用
- 如圖,新建一個站點 tom02
- 右邊協議,選擇 SFTP 協議
- 主機是服務器 ip ,端口使用 22
- 下面用戶名是 root ,密碼就是 root 密碼
- 而後鏈接
- 如圖,上面方框能夠輸入任意路徑
- 下面能夠顯示訪問的目錄
- 由於是 root 身份登陸的,因此能夠訪問服務器內全部的目錄
- 權限很大,因此很是不安全,好處是比較方便
- 除了使用用戶名密碼登陸外,也可使用密鑰登陸
- 設置會麻煩一些