1. 程式人生 > >jetty9 centos下配置

jetty9 centos下配置

jetty官網:http://www.eclipse.org/jetty/
具體配置流程如下1, 2:
1. Nginx 新增監聽域名和路由埠.
    #當前應用的可用流(可無限新增) 

    upstream pisaTbt0 {
         server  10.221.12.182:8051 weight=1;
         server  10.221.12.182:8052 weight=1;
         keepalive 256;
    }
    upstream pisaTbt1 {
         server  10.221.12.182:8061 weight=1;
         server  10.221.12.182:8062 weight=1;
         keepalive 256;
    }
    #監聽域名,此處可配置監聽多個埠
    server {
         listen  80;
         server_name  203.195.182.194;
         location ^~ /pisa-tbt/ {
             proxy_pass        http://pisaTbt0;
             proxy_set_header   Host             $host;
             proxy_set_header   X-Real-IP        $remote_addr;
             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         }
     }
     server {
         listen  8080;
         server_name  203.195.182.194;
         location ^~ /pisa-tbt/ {
             proxy_pass        http://pisaTbt1;
             proxy_set_header   Host             $host:8080;
             proxy_set_header   X-Real-IP        $remote_addr;
             proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         }
     }



2. 配置和啟動Jetty獨立服務
    1) 拷貝davinciDev或WukongDev為自己的應用目錄(除了配置檔案和日誌目錄其餘全部為軟連線, 不用擔心版本問題)
    3) 進入{Jetty目錄}/standalone/{自己的應用地址}
    4) 修改server.conf, 指定當前服務的兩個埠號, 和上方的Nginx流內的埠號對應.
    5) 修改etc/jetty-http.xml中的jetty.host為要啟動的host
    6) 執行   server.sh start   啟動服務, 啟動後將自動在兩個埠號內選擇一個執行.
    7) 如果需要熱重啟服務時則執行   server.sh switch   進行切換, 指令碼會啟動新服務並保證可用的情況下關閉老服務.  Nginx則會自動路由請求到新服務.

注:單獨啟動方式

/opt/local/jetty/bin/jetty.sh start >/tmp/test.log 2>&1  &



Jetty獨立服務介紹:
目錄結構:
./data                  儲存PID和啟動進度資訊.
./etc                    應用目錄配置, 啟動監聽配置.(設定項會自動配置, 所以無需更改),此目錄中主要包括jetty-deploy.xml和jetty-started.xml,這兩個檔案會替代全域性配置
./log                    jetty的啟動日誌(針對當前獨立應用)
./server.conf       啟動埠號配置
./server.sh           獨立服務執行指令碼(包括三個命令, server.sh start:啟動服務, server.sh stop:關閉服務, server.sh switch:切換服務)
./webapps           應用存放位置
jetty war包解壓設定
自定義的解壓路徑設定比較複雜,最簡的就是在jetty根目錄下增加一work目錄,jetty就會把war包解壓路徑放在work下面

jetty根目錄下的start.ini可以配置jvm的一些引數,簡要示例如下,jdk1.7在末尾新增以下引數:

--exec
-Xmx4096m
-Xms4096m
-Xmn1536m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:MaxTenuringThreshold=7
-XX:GCTimeRatio=19
-XX:+UseConcMarkSweepGC
-XX:ParallelGCThreads=8
-XX:+CMSClassUnloadingEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=5
-XX:-CMSParallelRemarkEnabled
-XX:+DisableExplicitGC
-XX:CMSInitiatingOccupancyFraction=40
-XX:SoftRefLRUPolicyMSPerMB=0
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:logs/gc.log


jetty根目錄下的start.d下的http.ini可以配置使用start.jar啟動時使用的埠,此處如果使用了第二步standalone方式的啟動形式,則最好把jetty.port注掉,否則有可能會有衝突
etc/jetty-http.xml可配置jetty總的監聽埠

jdk1.8 G1示例引數

--exec
-Xmx1024m
-Xms1024m
-Xmn256m
-XX:CompressedClassSpaceSize=128m
-XX:MaxMetaspaceSize=128m
-XX:MaxDirectMemorySize=128m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=100
-XX:InitiatingHeapOccupancyPercent=45
-XX:MaxTenuringThreshold=4
-XX:GCTimeRatio=19
-XX:ParallelGCThreads=5
-XX:+DisableExplicitGC
-XX:SoftRefLRUPolicyMSPerMB=0
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails
-Xloggc:logs/gc.log
-XX:-HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=logs/oom_dump.log