Niginx反向代理負載均衡

1.單機容量問題,水平擴展: 先不考慮數據庫和服務器共享一臺機子的問題,它的單機也是有容量問題的,所以須要系統有必定的水平擴展能力,就依託於niginx的反向代理作一個css

             收口的操做。 由於對外的域名是一致的只有一個miaoshaserver.com , 如何對同一個域名 能夠代理到多臺applicationserver的服務器上呢 html

2.niginx的反向代理 :      它能夠代理咱們後端的tomcat集羣 ,以一個統一域名的方式暴露出去,供用戶調用。前端

3.負載均衡配置:  最後咱們能夠依靠niginx的負載均衡配置,論詢等等負載均衡的策略,使得應用能夠水平擴展。java

 

解決方案:1.mysql數據庫開放遠端鏈接mysql

        2.服務端對稱水平部署nginx

        3.驗證訪問c++

 

1.一臺nginx服務器,一臺數據庫,另外兩臺server服務器。web

2利用scp將程序cp到另外兩臺服務器上,本臺機子作數據庫ajax

 

scp -r /var/www  root@私有網址內網訪問速度比較快:/var/

 

3,到服務器啓動程序,可是要注意,配置數據庫鏈接,在application.properties中加入一行數據庫配置:配置完記得./depoly.sh &redis

利用telnet來ping一下通不通,若沒有安轉telnet就yum install telnet安裝;可是telnet會失敗,應該要回到數據庫機子上,打開數據庫,打開數據庫裏自帶的mysql,

show databases;
use mysql;
show tables;
select host, user,password from user;
grant all privileges on *.* to root@'%' identifided by '密碼'; //給全部的database和table都受權,host爲%,經過密碼就能夠訪問
flush privileges;

 

 

4.這臺服務器尚未安轉java版本

cd /var/www
chmod -R 777 jdk-8u(就是傳過來的java包,省略了)
rpm -ivh jak-8u(省略了)

5.最後執行./deploy.sh &    啓動miaosha服務,能夠利用tail -f nohub.out來查看啓動日誌

6.Nginx:

  1,使用nginx作web服務器    :將css。html等靜態資源放上去暴露出來供客戶端使用,即靜態的web服務器

  2,使用nginx作動靜分離服務器  :在作反向代理服務以後,咱們能夠將 靜態的請求依舊路由在本地的html文件中, 直接以靜態請求的方式返回給前端,以後依賴第三點

  3,使用nginx作反向代理服務器  :將動態請求反向代理到後端,而且以ajax請求的方式能夠返回給前端一些固定的json參數來完成動靜分離的使用

 

 

上圖解析:H5的前端ajax會訪問miaoshaserver,nginx經過反向代理到miaosha1或者miaosha2服務器上,而後經過jdbc訪問數據庫,H5的static靜態資源也會訪問nginx來獲取靜態資源,nginx從本地磁盤獲取,通常企業級的都會使用NAS網盤來掛載到本地磁盤,由於阿里的服務器通常都有上限的。那麼nginx如何來判斷什麼時候訪問本地磁盤,什麼時候作反向代理呢?通常都是經過請求的地址是否是在miaoshaserver/resources下,若是是就訪問本地磁盤,若是不是就作反向代理。

 

6.首先在前端資源頁面新鍵一個gethost.js,將鎖頭頁面中都引入gethost.js   而後將全部的localhost:8080都替換成"+g_host+"

var g_host="localhost:8090";

7nginx:

  咱們熟知的apache是c++編寫的so文件,能夠任意下載和卸載,只須要重啓一下服務便可,可是nginx很遺憾,沒有集成這一點,他必須基於編譯的時候指定我須要將nginx模塊編譯進咱們的nginx中,尤爲是nginx對於lua腳本的支持,編譯時候須要指定不少lua的參數設定,這樣對於開發來講是很是困難的,並且在作商品詳情頁性能優化的時候,須要lua提供的redis,memcahe,以及本地的內存緩存支持的時候,他的編譯過程是很是痛苦的,強烈推薦你們使用OpenResty框架。集成了反向代理,lua的支持 ,redis的支持等等,所以只要將OpenResty打包下載下來,而且編譯以後,就能夠使用

相關文章
相關標籤/搜索