




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Nginx+tomcat+SS安裝配置手冊1.介紹Nginx("enginex")是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。nginx有以下幾項基本特性:模塊化結構過濾器包括gzipping,byteranges,chunkedresponses,以及SSI-filter等filter。高性能支持內核Poll模型,能經受高負載的考驗,有報告表明能支持高達50,000個并發(fā)連接數(shù)。高穩(wěn)定性Nginx采取了分階段資源分配技術,使得它的CPU與內存占用率非常低。官方表示保持10,000個沒有活動的連接,它只占2.5M內存。多負載策略多
2、種分配策略,并且分配均勻。自Nginx發(fā)布四年來,Nginx已經因為它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名了。目前國內各大門戶網站已經部署了Nginx,如新浪、網易、騰訊等;國內幾個重要的視頻分享網站也部署了Nginx,如六房間、酷6等。2 .準備2.1 資源Nginx中文網站:http:Nginx英文網站:/PCRE網立/2.2 相關軟件1) PCREPCRE(PerlCompatibleRegularExpressions)中文含義:perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數(shù)庫。P
3、CRE已安裝。neginx中使用正則表達式進行靈活配置,安裝之前需要確認下載地址:/,使用版本pcre-8.12.tar.gz2) nginx-upstream-jvm-routenginx_upstream_jvm_route是一個Nginx的擴展模塊,用來實現(xiàn)基于Cookie的SessionSticky的功能下載地址(svn):http:/nginx-upstream-jvm-3 .部署結構配置Tomcat集群,修改server.xml,增力DjvmRoute,實現(xiàn)session同步安裝Nginx、nginx_upstream_jvm_route實現(xiàn)負載
4、均希4 .環(huán)境安裝4.1 Windows版安裝安裝文件為.zip文件,解壓縮后,運行目錄中的nginx.exe(或使用命令,服務啟動。瀏覽器中輸入:0,出現(xiàn)“Welcometonginx!”頁面,安裝成功。4.2 Linux版安裝安裝說明本例將nginx安裝在/home/apps目錄下。將pcre-8.12.tar.gz、nginx-0.8.54.tar.gz文件ftp至1J/home/apps目錄下。將nginx-upstream-jvm-route文件夾ftp至U/home/apps目錄下。安裝步驟1) PCR段裝#cd/home/apps#tarzxf
5、pcre-8.12.tar.gz#cdpcre-8.12#./config#make#makeinstall默認安裝路徑為:/usr/local/lib2) nginx-upstream-jvm-route安裝#cd/home/apps# tarNxfnginx-0.8.54.tar.gz# mvnginx-0.8.54nginx-0.8.54-src# cdnginx-0.8.54-src# patch-p0<./nginx-upstream-jvm-route/jvm_route.patch3) nginx安裝# cd/home/apps/nginx-0.8.54# ./config
6、ure-prefix=/home/apps/nginx-0.8.54-with-http_ssl_module-with-http_gzip_static_module-with-http_stub_status_module-add-module=/home/apps/nginx-upstream-jvm-route#make#makeinstall啟動、驗證# cd/home/apps/nginx-0.8.54/sbin#./nginx5. Nginx配置5.1 通用參數(shù)配置1) worker_processes:指明了nginx要開啟的進程數(shù),據官方說法,一般開一個就夠了,多開幾個,可以
7、減少機器io帶來的影響。(網上經驗,設置為cpu數(shù)的兩倍)。2) worker_connections:每個工作進程允許最大的同時連接數(shù)。5.2 負載均衡配置說明Nginx使用upstream模塊配置負載均衡,upstream目前支持5鐘配置方式,每種方式是不同的負載策略,除了這五種外可以使用nginx-upstream-jvm-route擴展模塊,在配置部分會針對6中進行示例。準備工作安裝nginx-upstream-jvm-route擴展模塊。修改tomcat的server.xml文件,在"Engine”節(jié)點增加“jvmRoute="tomcat1""
8、;和"jvmRoute="tomcat2"配置1) 輪詢(默認)每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。(server0:8080;server1:8081;)2) weight指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。weight默認為1.weight越大,負載的權重就越大。(server0:8080weight=1;server1:8081weight=2;3) ip_hash每個請求按訪問
9、ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。(ip_hash;server0:8080;server1:8081;)4) fair按后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。(server0:8080;server1:8081;fair;)5) url按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。(server0:8080;server1:
10、8081;hash$request_uri;hash_methodcrc32;)6) nginx-upstream-jvm-routeNginx的擴展模塊,用來實現(xiàn)基于Cookie的SessionSticky的功能。(server0:8080srun_id=tomcat1;server1:8081srun_id=tomcat2;jvm_route$cookie_JSESSIONID|sessionidreverse;)5.3 SSL模塊配置準備證書,使用openssl將p12文件導出服務器證書文件、服務器私鑰文件、客戶證書的簽發(fā)證書(CA證書)。
11、見openssl命令。說明Nginx可是實現(xiàn)SS而配置,實現(xiàn)單向和雙向認證,并能夠驗證證書的狀態(tài)。準工作配置單項SSL需要準備服務器證書文件和私鑰文件,配置雙向SSL還需要準備用戶證書的簽發(fā)證書。CA服務器證書文件為p12格式(nginx不能配置p12格式?),需將p12格式轉化為crt/cer、key文件格式。使用openssl做轉換,命令如下:opensslpkcs12-.pfx-nodes-nocerts-outserver.keyopensslpkcs12-.pfxd-nodes-nokeys-clcerts-outserver.crtopensslpkcs12-inrootca.pf
12、x-nodes-nokeys-clcerts-outca.crt配置HTTPS修改nginx.conf文件,配置HTTPS莫塊,配置如下:serverlisten443;server_namelocalhost;sslon;ssl_certificateserver.crt;ssl_certificate_keyserver.key;ssl_client_certificateca.crt;#雙向認證ssl_verify_clienton;#雙向認證ssl_session_timeout5m;ssl_protocolsSSLv2SSLv3TLSv1;ssl_ciphersALL:!ADH:!E
13、XPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_cipherson;location/XXXX_center/proxy_pass0/XXXX_center/;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerSSL_CERT$ssl_client_cert;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;location/roothtml;indexi
14、ndex.htmlindex.htm;)注思1、 Nginx配置了SSL后,tomcat不需要再配置SSL因為代理轉向地址為http而非https,如:proxy_passhttp:0/XXXX_center/;2、 Nginx配置SSL后,web服務器部署的應用不能再獲取到用戶證書,而服務器平臺必須要拿到用戶證書進行業(yè)務驗證。這就需要nginx將用戶證書透傳到web服務器,在這里將用戶證書添加到http頭中,應用從http頭獲取用戶證書,達到透傳的目的,如:proxy_set_headerSSL_CERT$ssl_client_cert;5.4 靜態(tài)文件配置說明Ngi
15、nx可處置靜態(tài)文件,應用服務器只處理動態(tài)文件,提高訪問和處理能力。準備工作將靜態(tài)文件放入nginx服務器:在nginx目錄下創(chuàng)建web目錄,將XXXX_center下的XXXX_center/static/sj和XXXX_center/static/smpush文件放入web目錄,目錄結構為:XXXX_center/static/sj、/nginx-0.8.54/web/XXXX_center/static/smpush。配置location.(css|js)rootweb;#將應用的靜態(tài)內容放入web目錄下expires1h;/注思1、過濾條件根據需求改變表達式即可。2、Tomcat下發(fā)布的
16、XXXX_center應用不需要在包含靜態(tài)文件,只需維護nginx的靜態(tài)文件即可。5.5 監(jiān)控模塊說明配置locationA/NginxStatusstub_statuson;)監(jiān)控信息輸入nginx的URL0/NginxStatus,顯示如下內容:Activeconnections:70serveracceptshandledrequests145538191455381919239266Reading:0Writing:3Waiting:67activeconnections:當前Nginx正處理的活動連接數(shù)。serveracceptshandledre
17、quests-總共處理了14553819個連接,成功創(chuàng)建14553819次握手(證明中間沒有失敗的),總共處理了19239266個請求(平均每次握手處理了1.3個數(shù)據請求)。reading-nginx讀取到客戶端的Header信息數(shù)。writing-nginx返回給客戶端的Header信息數(shù)。waiting-開啟keep-alive的情況下,這個值等于active-(reading+writing),意思就是Nginx已經處理完正在等候下一次請求指令的駐留連接。6. Tomcat集群配置:實現(xiàn)多臺web服務器的session同步。6.1 條件1、確定nginx服務器和兩臺tomcat服務器可以
18、互訪,并且兩個tomcat機器在一個網段內。2、確定兩臺tomcathost多播已經打開,在Linux機器上可以使用cat/proc/net/dev_mcast檢查,如果文件存在基本上就是打開了。6.2 配置1、修改web.xml,在其中<display-name>XXXX_center</display-name>節(jié)點后添加distributable/,表明此應用與集群服務器復制Session2、 修改tomcat的server.xml文件,在“Engine"節(jié)點增加"jvmRoute="tomcat1"”,改后為:<En
19、ginename="Catalina"defaultHost="localhost"jvmRoute="tomcat1">、<Enginename="Catalina”defaultHost="localhost"jvmRoute="tomcat2”>。3、修改tomcat的server.xml文件,在“Engine”節(jié)點下增加如下內容:<ClusterclassName="org.apache.catalina.ha.tcp.SimpleTcpCluster&
20、quot;channelSendOptions="6"><ManagerclassName="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><ChannelclassName="org.apache.catalina.tribes.group.GroupChannel”><Membership
21、className="org.apache.catalina.tribes.membership.McastService"address=""port="45564"frequency="500"dropTime="3000"/><ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver"address="0"por
22、t="400rselectorTimeout=T00"maxThreads="6"/><SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitter"><TransportclassName="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><InterceptorclassNam
23、e="erceptors.TcpFailureDetector"/><InterceptorclassName="erceptors.MessageDispatch15Interceptor"/></Channel><ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve"filter=&quo
24、t;.*.gif;*.js;*.jpg;.*.png;*.htm;.*.html;.*.css;.*.txt;"/><ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>6.3 驗證在兩臺to
25、mcat服務器部署的應用中放置test.jsp文件,在瀏覽器輸入URL:0:8081/XXXXcenter/test.jsp,輸入URL:1:8082/XXXXcenter/test.jsp,兩個頁面顯示出tomcat1和tomcat2上的session值,說明session同步起作用了。參考附錄中的test.jsp文件。7. Web服務器比較serverApacheNginxLighttpdProxy代理卜常好非常好一般Rewriter好非常好一般Fcgi卜好好非常好熱部署卜支持支持不支持系統(tǒng)壓力比較卜大很小比較小急定性
26、好非常好不好安全性好一般一般皮術支持卜常好很少一般停態(tài)文件處理,般非常好好Vhosts虛擬主機卮持不支持支持反向代理一般非常好一般Sessionsticky卜持不支持不支持8. 附錄8.1 nginx相關命令# 啟動./nginx# 停止./nginx-sstop# 重新加載./nginx-sreload# 測試配置文件./nginx-t8.2 openssl相關命令opensslpkcs12-.pfx-nodes-nocerts-outserver.keyopensslpkcs12-.pfx-nodes-nokeys-clcerts-outserver.crtopensslpkcs12-in
27、rootca.pfx-nodes-nokeys-clcerts-outca.crt8.3 nginx配置文件#usernobody;worker_processes1;#pidlogs/nginx.pid;eventsworker_connections1024;http(includemime.types;default_typeapplication/octet-stream;#access_loglogs/access.logmain;sendfileon;#tcp_nopushon;#keepalive_timeout0;keepalive_timeout65;gzipon;proxy
28、_connect_timeout3s;(#ip_hash;server0:8080srun_id=tomcat1;server0:8081srun_id=tomcat2;jvm_route$cookie_JSESSIONID|sessionidreverse;serverlisten80;server_namelocalhost;charsetutf-8;#access_loglogs/host.access.logmain;locationA/NginxStatusstub_statuson;location/XXXX_center/proxy
29、_passproxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;)location/provider_demo/proxy_passproxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;)location/roothtml;indexindex.htmlindex.htm;一#error_page404/404.html;
30、#redirectservererrorpagestothestaticpage/50x.html#error_page500502503504/50x.html;location=/50x.htmlroothtml;)#HTTPSserver#serverlisten443;server_namelocalhost;sslon;ssl_certificateserver.crt;ssl_certificate_keyserver.key;ssl_client_certificateca.crt;ssl_verify_clienton;ssl_session_timeout5m;ssl_pro
31、tocolsSSLv2SSLv3TLSvl;ssl_ciphersALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_cipherson;#error_page497"https:/$host$uri$is_args$args"location/XXXX_center/proxy_passproxy_set_headerX-Real-IP$remote_addr;proxy_set_headerSSL_CERT$ssl_client_cert;proxy_set_headerX-Forw
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年江西省上饒市民??荚嚶?lián)盟婺源紫陽中學高考考前模擬物理試題含解析
- 高效復習2025年育嬰師考試的實踐經驗試題及答案
- 霹靂貝考試題及答案
- 山西省運城市萬榮縣2020-2021學年八年級上學期期末考試物理試題【含答案】
- 浙江省桐鄉(xiāng)市2025屆高三物理試題統(tǒng)練試題
- SKLB102-生命科學試劑-MCE
- NGM-438-生命科學試劑-MCE
- 甘肅省慶陽市寧縣中2025屆高三下第一次測試物理試題含解析
- 四川省眉山市本年度(2025)小學一年級數(shù)學部編版能力評測(下學期)試卷及答案
- 驗證系統(tǒng)架構設計師考試準備措施的效果試題及答案
- 春季過敏性疾病預防
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學年八年級上學期期末數(shù)學試題
- GB/Z 43281-2023即時檢驗(POCT)設備監(jiān)督員和操作員指南
- 主動披露報告表
- 煤礦一通三防知識培訓課件
- 2022年版小學《義務教育音樂課程標準》考試復習題庫
- 筑業(yè)海南省建筑工程資料表格填寫范例與指南
- 國家開放大學《廣告學概論》形考任務1-4參考答案
- 畢業(yè)論文建筑消防系統(tǒng)論文
- 自制移動吊車(炮車)方案
- 《咕咚來了》PPT圖文帶mpa
評論
0/150
提交評論