1、簡介: php
Tomcat在高併發環境下處理動態請求時性能很低,而在處理靜態頁面更加脆弱。雖然Tomcat的最新版本支持epoll,可是經過Nginx來處理靜態頁面要比經過Tomcat處理在性能方面好不少。 css
2、下載安裝: html
下載nginx nginx
http://nginx.org/en/download.html web
下載解壓後放到C:\nginx-1.0.4(官網這樣要求的,不知道放其它盤有沒有問題) 正則表達式
啓動nginx.exe,而後在瀏覽器輸入127.0.0.1便可 後端
配置本身的項目測試 瀏覽器
第二環節咱們使用了默認的nginx.conf 。Nginx的配置文件都存於目錄conf文件下,其中nginx.conf是它的主配置文件。 緩存
如下爲我加上註釋並配置的新的虛擬server] tomcat
#號爲註釋內容,咱們在cmd下運行nginx
啓動成功,出錯的話,能夠查詢日誌(日誌路徑是配置文件指定的,你能夠修改存到其它位置)
訪問一下第二個server 配置的localhost:8666地址,結果出現
3、Nginx能夠經過如下兩種方式來實現與Tomcat的耦合:
將靜態頁面請求交給Nginx,動態請求交給後端Tomcat處理。
將全部請求都交給後端的Tomcat服務器處理,同時利用Nginx自身的負載均衡功能進行多臺Tomcat服務器的負載均衡。
下面經過兩個配置實例分別講述這兩種實現
1、動態頁面和靜態頁面分離的實例
這裏假定Tomcat服務器的IP地址爲192.168.12.130,同時Tomcat服務器開放的服務器端口爲8080。Nginx相關配置代碼以下:
在這個實例中,首先定義了一個虛擬主機www.ixdba.net,而後經過location指令將/web/www/html/img/目錄下的靜態文件交給Nginx來完成。最後一個location指令將全部以.jsp、.do結尾的文件都交給Tomcat服務器的8080端口來處理,即http://192.168.12.130:8080。
須要特別注意的是,在location指令中使用正則表達式後,proxy_pass後面的代理路徑不能含有地址連接,也就是不能寫成http://192.168.12.130:8080/,或者相似http://192.168.12.130:8080/jsp的形式。在location指令不使用正則表達式時,沒有此限制。
二、多個tomcat負載均衡的實例
這裏假定有3臺Tomcat服務器,分別開放不一樣的端口,地址以下:
1
2
3
|
192.168.12.131:8000
192.168.12.132:8080
192.168.12.133:8090
|
Nginx的相關配置代碼以下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
upstream mytomcats {
server192.168.12.131:8000;
server192.168.12.132:8080;
server192.168.12.133:8090;
}
server {
listen80;
server_name www.ixdba.net;
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
root /web/www/html/;
}
location / {
proxy_pass http://mytomcats;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout90;
proxy_send_timeout90;
proxy_read_timeout90;
proxy_buffer_size 4k;
proxy_buffers432k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
|