整合Tomcat和Nginx實現動靜態負載均衡

轉載請註明原文地址:http://www.cnblogs.com/ygj0930/p/6386135.htmlcss

 

    Nginx與tomcat整合能夠實現服務器的負載均衡。html

    在用戶的請求發往服務器進行處理時,若是請求太多處理不了,容易形成服務器阻塞、響應慢等狀況。這時,若是咱們能夠有多臺服務器的話,就能夠實現把請求派發給各臺服務器進行處理,這個分發的過程就是由Nginx完成的。一樣,因爲Tomcat主要用來處理動態的內容,好比jsp文件。那麼靜態的html/圖片等資源就能夠交給Nginx來處理,期間也用到了分發。對於有多臺服務器時,用一臺服務器裝Nginx做爲代理服務器,把全部請求聚集到這裏進行分發到其餘服務器。而對於一臺服務器實現動靜態分離時,則須要在一臺服務器上同時搭建Nignx和tomcat,並進行整合。其原理都是同樣的,配置的文件也幾乎同樣。這裏,咱們只講在一臺服務器上的整合。nginx

     一:安裝Nignxubuntu

sudo apt-get install nginx

     二:配置nginx.conf文件瀏覽器

    vi 打開nginx文件後,找到http{}節點,在裏面添加:tomcat

upstream 你的域名{  
    server 你的雲主機IP:80;  
     }  

     而後添加一個server。若是是配置多臺服務器,則在上面添加多個upstream,下面對應多個server進行分發。這裏我只有一個服務器,因此配置一個:服務器

 server {

        #偵聽80端口

            listen       80;

            #定義使用域名訪問

            server_name  www.xx.com;

            #設定本虛擬主機的訪問日誌

            access_log  logs/www.xx.com.access.log  main;


        # 定義錯誤提示頁面

        error_page   500 502 503 504 /50x.html;

            location = /50x.html {

            root   /root;

        }

      

       location ~ .*.[jsp|do|action]$ { #全部jsp頁面以及do/action請求均交由   tomcat處理
       index index.jsp;
        proxy_pass http://你的域名:80; #轉向tomcat處理
    }

       location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #設定訪問靜態文件直接讀取,不通過tomcat。過時時間30天
      expires      30d;
     }
     location ~ .*\.(js|css)?$ {
    expires      1h;
    }

        #設定查看Nginx狀態的地址

        location /NginxStatus {

            stub_status            on;

            access_log              on;

            auth_basic              "NginxStatus";

            auth_basic_user_file  conf/htpasswd;

        }
     }

     三:整合tomcat負載均衡

sudo vi /etc/nginx/conf.d/proxy.conf

     輸入jsp

#!nginx (-) 
# proxy.conf 
proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;  #獲取真實ip
#proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for; #獲取代理者的真實ip
client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffer_size       4k;
proxy_buffers           4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

    按Esc退出編輯模式,輸入 :wq  保存並退出。測試

    配置defalut文件:

sudo vi /etc/nginx/sites-available/defalut

    找到server{}添加:

#動態交給tomcat
location ~ .*.[jsp|do|action]$ { 
    index index.jsp;
    proxy_pass 你的域名:80;
}
#靜態直接讀取,不結果tomcat。過去時間30天
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    expires      30d;
}
location ~ .*\.(js|css)?$ {
    expires      1h;
}

     保存並退出。

    四:測試。

    重啓你的雲主機。登陸ubuntu後,分別啓動nginx和tomcat。(注意:從新部署項目,或者每次關機重啓後,都須要分別啓動tomcat和nginx)!啓動nginx:/etc/init.d/nginx 啓動tomcat:bin目錄下 ./startup.sh

    而後在瀏覽器分別輸入  你的域名  以及    你的域名:80/index.jsp  ,發現都跳轉到同一頁面。說明整合成功~

相關文章
相關標籤/搜索