Linux基本服務Tomcat
tomcat
tomcat 是java的網站服務,不過現在java都是用開源jkd,即open-jdk
裝包,先要裝好java的環境:
yum –y install java-1.8.0-openjdk java-1.8.0-openjdk-headless
裝好後可以檢視一些java版本資訊 java -version
可以yum下載,不過建議可以使用升級的tomcat,在資源中有具體分享,進行tar解壓後把其放入/usr/local/下改名為tomcat即可
這個目錄中的子目錄內容為:
bin/ | 主程式目錄,裡面的startup.sh用於啟動tomcat |
lib/ | 庫檔案目錄 |
logs/ | 日誌目錄 |
temp/ | 臨時目錄 |
work/ | 自動編譯目錄jsp程式碼轉換servlet |
conf/ | 配置檔案目錄 |
webapps/ | 頁面目錄 |
不過tomcat的啟動有些bug,可能啟動程式顯示啟動成功,但netstat -ntlup檢視的時候發現tomcat的8005埠沒有開啟,這就有問題,其原因是生成隨機值速度慢,可以等1-3分鐘,如果還是不行就用下面的解決方案:
mv /dev/random /dev/random.bak
ln -s /dev/urandom /dev/random
XML語言
語法一:
<模組名 模組配置1 模組配置2>
模組配置3
模組配置4
</模組名>
語法二:
<模組名 模組配置1 模組配置2 />
註釋的語法是:
<!--
被註釋的部分內容
-->
兩個語法都是一個意思,不過,兩個平級模組不能巢狀在一起,每個部分都要是一個整體
tomcat的配置檔案:
tomcat/conf/server.xml,其中的語法格式和XML的一樣
<Server>
<Service>
<Connector port=8080 /> # 定義埠
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="金鑰對" keystorePass="密碼" clientAuth="false" sslProtocol="TLS" />
<Engine name="Catalina" defaultHost="域名"> # 定義虛擬主機群
<Host name="域名" appBase="為指" unpackWARS="true" autoDeploy="true"> # 定義虛擬主機
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="位置" prefix=" 日誌名" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> # 日誌檔案定義
<Context path="/地址" docBase="base" reloadable="true"/> # 對於客戶段訪問的地址的轉發
</Host>
</Engine>
</Service>
</Server>
模組體系結構:
server | ||||
service 提供服務 | ||||
Connector port=埠 | Engine 其中defaultHost定義下面的所有虛擬主機的預設訪問 |
|||
Host | Host | …… | ||
虛擬主機1 | 虛擬主機2 | |||
Valve 定義日誌資訊 | ||||
Context 針對客戶端地址的轉發1 |
Context 針對客戶端地址的轉發2 |
內容解釋:(裡面所有的位置,如果寫相對路徑都是從tomcat所在的目錄開始,絕對路徑就是伺服器中的絕對路徑)
1. Connector port=埠號
這就完成埠監聽的定義。
2. Engine name="Catalina" defaultHost="localhost"
name是指虛擬主機群的名字;
defaultHost指的是當沒有客戶端要求的域名的時候預設哪個虛擬主機。
3. Host name="localhost" appBase="a" unpackWARS="true" autoDeploy="true"
name是指域名;
appBase是指網站根目錄。
4. Valve className="org.apache.catalina.valves.AccessLogValve" directory="位置" prefix=" 日誌名" suffix=".txt" pattern="%h %l %u %t "%r" %s %b"
className指記錄的是什麼模組的,預設寫的是登陸日誌;
directory指日誌儲存的位置;
prefix指日誌定義的名字;
suffix指日誌檔案的字尾名;
pattern指的記錄的內容。
5. Context path="/地址" docBase="base" reloadable="true"
path指客戶端輸入的目標地址,如果path設定的指為空,則代表輸入域名的根目錄進行修改;
docBase指當用戶輸入目標地址後,前往哪個地址檢視網頁檔案。
6. 安全的tomcat
先生成金鑰對: keytool -genkeypair -alias 名字 -keyalg RSA(演算法,也可以是CSA) -keystore 金鑰對位置/金鑰名字
再寫埠的資訊即可,上面有寫,就不闡釋了,在訪問的時候要著明埠號
tomcat和其他http服務,其特殊的地方:
1. tomcat的埠和虛擬主機無關,客戶訪問是通過任意一個埠就可以訪問所有的虛擬主機,如果作安全的web,只要是從安全web的埠進來訪問,所有的網站都是安全的web。
2. tomcat的埠,一般的http是80,tomcat是8080;一般的安全的web是443,tomcat是8443,所以用瀏覽器訪問的時候,記得要在IP或者域名後面加上段口號
如果需要用nginx代理tomcat的web伺服器,具體操作和nginx代理一個http伺服器一模一樣,只不過在upstream中寫server的時候,後面的埠改成8080或者8443即可。
Varnish 快取伺服器
用於CDN的網站加速,一般的公司,用騰訊或者阿里的CDN,自己搭建代價比較大,具體搭建過程不難,需要一個yum不能安裝的包,所以具體的資源,在本blog會上傳,具體裝包過程
裝包:yum -y install gcc readline-deve ncurses-devel pcre-devel python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
然後建立一個使用者:useradd -s /sbin/nologin varnish
對原始碼包進行原始碼編譯:解包,配置,編譯,安裝即可
複製配置檔案,位置無所謂,都可以,在後面的啟動的時候會要求制定
cp etc/example.vcl /usr/local/etc/default.vcl
之後修改配置檔案 /usr/local/etc/default.vcl
backend default {
.host = "192.168.2.100";
.port = "80";
}
啟動服務:varnishd -f /usr/local/etc/default.vcl
–s malloc,128M # 定義varnish使用記憶體作為快取,空間為128M
–s file,/var/lib/varnish_storage.bin,1G # 定義varnish使用檔案作為快取
日誌
varnishlog # varnish日誌
varnishncsa # 訪問日誌
varnishadm # 互動式清除快取,再ban req.url ~ .*