上篇文章,我們針對叢集中的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教程有興趣的朋友有所協助。