轉載請註明原文地址: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 ,發現都跳轉到同一頁面。說明整合成功~