nginx常見問題/Tomcat服務器

---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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章