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