---nginx 常見問題
(1)使用高併發測試
yum -y install httpd-tools
ab -n 2000 -c 2000 http://192.168.4.5/ // -c 併發數 -n 總請求數
Benchmarking 192.168.4.5 (be patient)
socket: Too many open files (24) //提示打開文件數量過多
解決:
<1>調整進程數量
worker_processes 2; //與cpu個數相同
<2>最大併發量
events {
worker_connections 65535; //每個worker的最大併發連接數
user epoll;
}
<3>修改linux操作系統最大打開文件數
vim /etc/security/limits.conf
* hard nofile 100000
* soft nofile 100000
ulimit -Hn 100000
ulimit -Sn 100000
###########################################
(2)使用腳本測試長頭部請求是否能獲得響應
bash buffer.sh
<center><h1>414 Request-URI Too Large</h1></center> //提示頭部信息過大
解決
http {
client_header_buffer_size 1M; //默認請求包頭信息的緩存
large_client_header_buffers 4 4M; //大請求包頭部信息的緩存個數與容量
...
...
}
#############################################
(3)使用Firefox瀏覽器測試客戶端緩存以Firefox瀏覽器爲例,只要在地址欄內輸入 http://192.168.4.5/a.jpg,回車
後即連接目標主機192.168.4.5的Web服務,獲得服務器上的a.jpg圖片資源。若訪問成功,再次,在Firefox地址欄內輸入
about:cache將顯示Firefox瀏覽器的緩存信息
http {
server {
...
location ~*\.(jpg|jpeg|gif|png|css|ico|xml)$ {
expires 30d; //定義客戶端緩存時間爲30天
}
}
}
驗證
firefox 上 打 about:cache
##################################################
(4)http模塊優化
http {
server_tokens off; //不顯示nginx具體版本號
tcp_nodelay on; //關閉tcp緩延遲發送數據
keepalive_timeout 10; //保持連接的超時時間
#################################################
(5)自定義錯誤頁面
http {
server {
error_page 404 /40x.html
location /40x.html {
root html;
}
}
}
echo "<h1>some error</h1>" > /usr/local/nginx/html/40x.html
驗證
firefox 192.168.4.5/bbbbb
some error
###################################################
---Tomcat 服務器
端口號:8080
JDK -- Java語言的軟件開發工具包
JRE -- 運行Java程序所必須的環境的集合,包含JVM標準實現及Java核心類庫
---安裝Tomcat
(1)安裝部署JDK
yum -y install java-1.8.0-openjdk
yum -y install java-1.8.0-openjdk-headless
(2)安裝部署Tomcat
tar -zxf apache-tomcat-8.0.30.tar.gz
mv apache-tomcat-8.0.30 /usr/local/tomcat
bin/ #主程序目錄
lib/ #庫文件目錄
logs/ #日至目錄
temp/ #臨時目錄
work/ #自動編譯目錄jsp代碼轉換servlet
conf/ #配置文件目錄
webapps/ //頁面目錄
bin/shutdown.sh #關閉tomcat
bin/startup.sh #啓動tomcat
測試服務器
vim /usr/local/tomcat/webapps/ROOT/test.jsp
<html>
<body>
<center>
now time is:<%=new java.util.Date()%>
</center>
</body>
</html>
firefox http://192.168.4.5:8080/test.jsp
#############################################
---Tomcat 配置文件列表
server.xml #主配置文件
context.xml #定義會話管理器、JDBC等
server是tomcat實例的頂層元素 一個tomcat實例
service是一個集合,由一個或多個connector以及一個engine組成
connector負責接受用戶請求和向客戶返回響應結果
engine負責處理所有connector所獲得的客戶請求,它處理在同一個service中所有connector元素接收到的客戶請求。它匹配請求和自己的虛擬主機,並將請求發給對應的<host>處理,默認的主機是localhost
一個engine元素可以包含多個<host>元素,每個定義爲一個虛擬主機
<Server...>
<Service...>
<Connector ... />
<Engine...>
<Host...>
</Host>
</Engine>
</Service>
</Server>
###############################
---Tomcat虛擬主機
【tomcat】
(1)修改配置文件
/usr/local/tomcat/conf/server.xml
....
<Host name="www.aaa.com" appBase="a"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.bbb.com" appBase="a"
unpackWARs="true" autoDeploy="true">
</Host>
##appBase定義基礎目錄,基礎目錄下可以有很多項目,默認ROOT
mkdir -p {a,b}/ROOT
echo "<h1>aaa</h1>" > /usr/lcoal/tomcat/a/ROOT/index.html
echo "<h1>bbb</h1>" > /usr/lcoal/tomcat/b/ROOT/index.html
bin/shutdown.sh
bin/startup.sh
【客戶端】
firefox www.aaa.com:8080
aaa
firefox www.bbb.com:8080
bbb
修改首頁路徑:
/usr/local/tomcat/conf/server.xml
....
<Host name="www.aaa.com" appBase="a"
unpackWARs="true" autoDeploy="true">
<Context payh="" docBase="base" reloadable="true"/>
</Host>
##docBase定義首頁路徑 path指定用戶訪問的URL
在沒定義首頁路徑之前,首頁路徑爲a目錄下的ROOT下的網頁內容
在定義首頁路徑爲base後,首頁內容爲a目錄下base下的網頁內容
修改配置文件,使訪問/test 的內容爲/usr/local/nginx/html 的首頁內容
/usr/local/tomcat/conf/server.xml
....
<Host name="www.aaa.com" appBase="a"
unpackWARs="true" autoDeploy="true">
<Context payh="" docBase="base" reloadable="true"/>
<Context path="/test" docBase="/usr/local/nginx/html"/>
</Host>
##在訪問www.aaa.com/test時,匹配到<Context path="/test" docBase="/usr/local/nginx/html"/>
那麼出現的網頁內容爲/usr/local/nginx/html的網頁內容
firefox www.aaa.com:8080
firefox www.aaa.com:8080/test
###############################################
SSL加密站點
(1)生產私鑰證書文件
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore
(2)修改配置文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="/usr/local/tomcat/keystore KeystorePass="123456"
clientAuth="false" sslProtocol="TLS" />
firefox www.aaa.com:8443
#############################################
虛擬主機創建獨立日至文件
(1)修改配置文件
<Host name="www.aaa.com" appBase="a"
unpackWARs="true" autoDeploy="true">
<Context payh="" docBase="base" reloadable="true"/>
<Context path="/test" docBase="/usr/local/nginx/html"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="wwwaaa_access_log" suffix=".txt"
pattern="common" />
</Host>
bin/shutdown.sh
bin/startup.sh
ls logs