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

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條評論
主站蜘蛛池模板: 热热九九 | 国产好大好爽久久久久久久 | 成人午夜亚洲影视在线观看 | 日本高清视频www夜色资源网 | 97se狠狠狠狠狼亚洲综合网 | 色综合久久中文字幕 | 443hk四虎 在线观看 | 久久久久亚洲 | 图片区亚洲 | 中国妞xxx的视频 | 夜夜橹 | 无人码一区二区三区视频 | 欧美日韩亚洲一区二区 | 日本高清中文字幕一区二区三区a | 九天玄帝诀免费完整观看 | 欧美成人毛片在线视频 | 在线免费观看中文字幕 | 亚洲精品国产手机 | 成人综合网站 | 成人性生活免费看 | 热久久只有精品 | 欧美精品久久久久久久影视 | 亚洲午夜网 | 一级毛片日本特黄97人人 | 精品国产高清毛片 | 日本狠狠操 | 第一序列番外篇在哪里看 | 亚洲一区在线免费 | 九九热精品在线观看 | 日本在线中文 | 久久综合久久鬼色 | 国产成人亚洲综合在线 | 亚洲欧美精品成人久久91 | 91最新入口 | 久久99国产亚洲精品 | 亚洲欧美日韩国产一区二区精品 | 成人免费淫片在线费观看 | 欧美午夜视频 | 国产欧美精品一区aⅴ影院 国产欧美精品一区二区 | 欧美在线日韩在线 | 成年人国产视频 |