亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

nginx配合tomcat、resin等java應用服務器提供ja

系統 1742 0

首先探討一下為什么要使用nginx:

1、類似于apache+resin,nginx用于提供靜態頁面服務,比java服務器要強。雖然這些java服務器的性能都不賴,tomcat新版甚至還支持了epoll,但是用nginx來處理靜態文件是一定比這些服務器更穩妥并更快速的。

2、nginx在配合java應用服務器時相比apache耦合度更低,所以它可以用相同的方 式連上所有能支持http服務能力的java應用服務器,無論是tomcat、resin、weblogic、jetty、websphere……,并且 可以輕易地將一個應用同時連接不相同的服務器。譬如一臺跑tomcat,一臺跑resin,這一點在切換或測試生產環境時非常有用。另外耦合度的降低,將 使nginx和這些服務器之間的相互影響降到最低,這樣兩者就能各盡其責,apache一般是采用一個模塊來和java應用服務器打交道,這個模塊是會對 apache的運行或多或少產生影響的,nginx告訴我們這些模塊是多么的雞肋,java服務器要不就往fastcgi協議支持方面發展會更好。

3、nginx的一些特性可以保住脆弱的java服務器。其中可以點名的:1是可細致定制的負載均衡策略;2是超強的故障屏蔽功能可以做到不遺漏任何一個請求;3是客戶端連接的異步處理;4是比java服務器強上百倍的負荷能力。

綜合這些優點,一般的java應用服務器,接上一個nginx后,在服務穩定性上將可匹敵數萬美金的大型java集群服務器,java開發者就不用再為java性能方面發愁了。

如果決定試用一下nginx,那接下來的事就比吐口水輕松得多了。

nginx可以用兩種方式去接java后臺:

1、將jsp擴展名的請求發往后臺,這是比較傳統的方式

2、將所有請求都發往后臺,而將一些靜態文件的目錄留下

3、將所有請求都發往后臺,而將某種擴展名的鏈接留下

這三種方式都是利用鏈接特征處理的,舉例說明(例子中是服務器是單機):

首先配置一個upstream,這是通用的:

upstream www.sudone.com {

server 127.0.0.1:8081;

server 127.0.0.1:8082;

}

127.0.0.1:8081和127.0.0.1:8082就是后端服務器了,resin支 持兩種方式服務,一種是引擎方式用于連接apache和IIS,另一種是http server方式,一定要啟動的是http服務器方式的,這樣這兩個端口才有效。tomcat我不太清楚,如果有兩種方式,也一定要啟動http server方式,檢查的辦法是通過一個鏈接要能夠直接訪問得到頁面。

針對擴展名的策略的配置:

server {

listen 80;

server_name www.sudone.com;

location / {

root /da ta/html/;

rewrite "^/([0-9]+)\.html$" /a.jsp?id=$1 last;

}

location ~ (\.jsp)|(\.do)$ {

proxy_pass http://www.sudone.com;

}

}

需要注意的事項是:

1、location ~ (\.jsp)|(\.do)$這一段中的proxy_pass標簽后面一定不要寫/,也不能多寫/jsp,例如不能寫成proxy_pass http://www.sudone.com/;,原因是location如果用到正則表達式,則不能在proxy_pass中含有鏈接路徑。

2、server_name www.sudone.com;指定的是用戶訪問nginx時用的域名,proxy_pass http://www.sudone.com;這個是nginx upstream的名稱,同時是nginx訪問后臺用的域名,多數情況下用相同名稱就可以了,有一些特殊情況需要用到不相同名稱的,則要確保后臺不會因為 這一點惹出亂子。

3、rewrite直接寫在location /下面就可以了,不能寫在location ~ (\.jsp)|(\.do)$里面,注意rewrite后面的參數在這里一定要是last。

4、我在此配置里僅僅配置了jsp和do,當然java還不只支持這么多,所以要找到所有java鏈接規則才可以。

把所有請求都發往后臺的配置(2和3一起寫了):

server {

listen 80;

server_name www.sudone.com;

location / {

proxy_pass http://www.sudone.com;

}

location /images/ {

alias /da ta/html/images/;

}

location ~ (\.jpg)|(\.gif)|(\.png)$

{

root /da ta/html/;

}

}

這兩種配置和針對jsp擴展名的原理剛好是反的,注意事項:

1、和針對jsp擴展名不同,在proxy_pass http://www.sudone.com;這里,因為沒有用到正則表達式,所以可以在后面寫/,亦可支持/jsp。

2、location /images/這一段用alias會能看得比較清楚,也可以用root標簽,不過這時就應該寫成:root /da ta/html/,提前一級。

3、location ~ (\.jpg)|(\.gif)|(\.png)$這一段只能用root標簽,不能寫alias,location用正則后再用alias的話nginx不支持,我也想不清楚用alias的話邏輯會是怎樣的。

以上配置都是最簡化的配置,還有很多參數可以調整,我在我其他文章里會有所講述。另外提醒,要好好測試,有問題先思考,這些配置都不是萬能配置還不足以能解決所有情況,同時這幾種配置也沒有優劣之說,如果不確定用哪種,采用第一種方式就可以了。

nginx配合tomcat、resin等java應用服務器提供java支持


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品夜夜夜夜夜久久 | 亚洲 国产 路线1路线2路线 | 99久久精品免费观看区一 | 亚洲免费二区三区 | 亚洲狠狠婷婷综合久久久久 | 亚洲视频三级 | 九九九影院| 神马影院我不卡888 神马影院我不卡手机 | 亚洲热热久久九九精品 | 26uuu欧美日本 | 簧片在线播放 | 久久天天躁狠狠躁夜夜 | 午夜免费看 | h片免费在线观看 | 欧美亚洲国产日韩一区二区三区 | 国产一区二区三区视频在线观看 | 欧美日韩国产高清一区二区三区 | 一二三区在线观看 | 97在线免费看视频 | 亚洲欧美自拍另类图片色 | 成人国产视频在线观看 | 免费爱爱的视频太爽了 | 9999热| 久草热线| 色片在线 | 日本 毛片基地-亚洲 | 狠狠操夜夜爱 | 夜夜躁日日躁狠狠 | 日韩经典中文字幕 | 国产精品日本一区二区在线播放 | 999视频在线观看 | 美国一级毛片免费看成人 | 国产羞羞视频在线播放 | 亚洲欧美日韩中文综合在线不卡 | 国产高清一区二区三区视频 | 天天插夜夜爽 | 全部无卡免费的毛片在线看 | 成人亚洲欧美日韩在线观看 | 久热re这里只有精品视频 | 国产一区二区精品久久91 | 中文字幕日韩女同互慰视频 |