java叢集最佳化——Nginx+tomcat叢集配置-實踐篇

來源:互聯網
上載者:User
上篇文章,我們針對叢集中的Nginx+tomcat技術理論進行了介紹,今天,咱們一起來完成一個簡單的叢集搭建

結果預覽

大家先看看配置之後的結果:

配置步驟:

1. 安裝

從Nginx官網下載頁面(http://nginx.org/en/download.html)下載Nginx最新版本(目前是1.9.3版本)安裝包,解壓後複製到部署目錄。

2. 啟動和停止Nginx

Nginx目前只支援命令列操作,操作前先進入Dos命令環境(cmd命令),並進入Nginx部署目錄。
啟動Nginx:start nginx
停止Nginx:nginx -s stop
修改配置後重啟:nginx -s reload
這三個命令可分別做成bat檔案,放在部署目錄下,方便後續操作。
start nginx.bat檔案內容:start nginx
stop nginx.bat檔案內容:nginx -s stop

reload nginx.bat檔案內容:nginx -s reload

3. 反向 Proxy配置

修改部署目錄下conf子目錄的nginx.conf檔案(如nginx-1.5.13\conf\nginx.conf)內容,可調整相關配置。

反向 Proxy配置樣本:
location / {             #設定主機頭和用戶端真真實位址,以便伺服器擷取用戶端真實IP             proxy_set_header Host $host;             proxy_set_header X-Real-IP $remote_addr;             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             #禁用緩衝             proxy_buffering off;             #設定反向 Proxy的地址             proxy_pass http://192.168.1.1;             }

4. 負載平衡配置

nginx 的 upstream預設是以輪詢的方式實現負載平衡,這種方式中,每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
另外一種方式是ip_hash:每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。
負載平衡配置樣本
upstream xvshu.com{             #ip_hash;             server 192.168.121.251 1;             server 192.168.121.252 1;             server 192.168.121.253 1;         }server {        listen       80        server_name  trffweb;        location / {             #反向 Proxy的地址             proxy_pass http://xvshu.com;             }}

5. 完整配置樣本

nginx.conf:#Nginx所用使用者和組,window下不指定  #user  niumd niumd;    #工作的子進程數量(通常等於CPU數量或者2倍於CPU)  worker_processes  1;    #錯誤記錄檔存放路徑  #error_log  logs/error.log;  #error_log  logs/error.log  notice;  error_log  logs/error.log  info;    #指定pid存放檔案  pid        logs/nginx.pid;    events {      #使用網路IO模型linux建議epoll,FreeBSD建議採用kqueue,window下不指定。      #use epoll;            #允許最大串連數      worker_connections  2048;  }    http {      include       mime.types;      default_type  application/octet-stream;            #定義日誌格式      #log_format  main  '$remote_addr - $remote_user [$time_local] $request '      #                  '"$status" $body_bytes_sent "$http_referer" '      #                  '"$http_user_agent" "$http_x_forwarded_for"';        #access_log  off;      #access_log  logs/access.log;        #client_header_timeout  3m;      #client_body_timeout    3m;      #send_timeout           3m;         #client_header_buffer_size    1k;      #large_client_header_buffers  4 4k;        sendfile        on;      #tcp_nopush      on;      #tcp_nodelay     on;        keepalive_timeout  75;        #include    gzip.conf;      upstream xvshu.cn{        #根據ip計算將請求分配各那個後端tomcat,許多人誤認為可以解決session問題,其實並不能。        #同一機器在多網情況下,路由切換,ip可能不同        #ip_hash;         server 192.168.112.250:18080 weight=1;  server 192.168.112.251:18080 weight=1;       }        server {              listen       80;              server_name  localhost;       #定義server_name  localhost中的請求都叫給xvshu.cn處理            location / {                      #proxy_connect_timeout   3;                      #proxy_send_timeout      30;                      #proxy_read_timeout      30;                      proxy_pass http://xvshu.cn;proxy_redirect default;            }                   }  }  

遇到的問題:

重新載入nginx服務失敗,提示沒有對應的服務,這時候可以嘗試手動重啟伺服器


總結:

一個好的工具,不僅僅是實現了好的功能,還有更重要的一點就是,一定要有更簡單的商務邏輯,這樣使用者在使用這款工具的時候才能順利過渡,而Nginx這款軟體,對於廣大開發人員恰恰符合這兩個要求,不用心,使用者就會體會到,用心了,就是讓使用者體會不到,離不開!這不就是互連網產品的思維嗎?

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

以上就介紹了 java叢集最佳化——Nginx+tomcat叢集配置-實踐篇,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.