Nginx的虛擬主機

Nginx的虛擬主機

簡單介紹

虛擬主機:就是將一臺物理服務器虛擬爲多個服務器來使用,從而實現一臺服務器上配置多個站點,便可以在一臺物理主機上配置多個域名,Ngxin中一個server標籤表明的就是一個虛擬機,配置多個server標籤就許你出了多個主機web

Nginx虛擬主機的實現方式有兩種:域名虛擬方式、端口虛擬方式vim

  • 域名虛擬方式:指不一樣的虛擬機使用不一樣的域名,經過不一樣的域名虛擬處不一樣的主機跨域

  • 端口虛擬方式:不一樣的虛擬機使用相同的域名不用的端口,經過不一樣的端口虛擬處不一樣的主機,基於端口的虛擬方式不經常使用瀏覽器

Demo規劃

咱們模擬58同城,每一個城市都有每一個城市的站點,咱們建立三個站點,分別是"總站"、"成都站"、"上海站",每一個站點經過Nginx都是一個虛擬主機,每一個站點都配置負載均衡,也就是說須要7臺機器,一個Nginx負責虛擬主機和負載均衡,6個主機分紅三組,分別爲三個站點的訪問提供負載均衡,因爲6個機器太麻煩了,咱們就把6個Tomcat都裝在一個主機上,所有修改端口便可,如今咱們只須要兩臺就行緩存

Web工程

首先建立三個Web工程,他們的index.jsp分別以下:tomcat

  

  

  

經過上面三個Web項目的jsp,能夠猜測一下待會兒咱們的實現效果,咱們能夠經過一個域名的頁面去訪問另外一個域名的的頁面,而他們之間訪問的確實To你跟一個Ngxin,在Nginx上咱們配置虛擬主機,支持這種跨域名跳轉服務器

固然,我修改了本地的hosts,這個域名我可買不起,使用的是:SwitchHosts網絡

  

根據這個配置:588.com 、588.chengdu.com、588.shanghai.com,其實咱們都是訪問的192.168.159.169app

關於hosts方面的知識,我就走馬觀花吧,當咱們的瀏覽器在訪問咱們請求時,首先會查詢本地的hosts文件,查詢是否匹配上某個路由,若是匹配上,就走本地的路由,若是沒有匹配上再經過網絡匹配,如上圖所示,咱們給588.com、588.chengdu.com、588.shanghai.com在本地都作了具體的路由,所有指向192.168.159.169,這三個請求都指向同一個路由負載均衡

下面繼續說Demo,這裏我其實仍是有一點不一樣,在本地hosts修改的映射路徑,到了咱們的服務端,咱們的請求路徑應該是咱們瀏覽器上的請求路徑,而不是本地的映射路徑?Demo後面會驗證

6個Tomcat

咱們再192.168.159.159着太機器上安裝6個Tomcat,以下所示:

  

這6個Tomcat,咱們所有修改他們的端口,並按照必定的規律 [ 便於記憶 ],咱們以tomcat1爲列:

  • vim tomcat1/conf/server.xml

  • 第一臺機器 以1開頭:分別爲 800一、808一、8011

  • 第二臺機器 以2開頭:分別爲 800二、808二、8012,依次類推修改全部的Tomcat...

修改完以後,爲了咱們訪問Tomcat,默認訪問咱們的項目,咱們將tomcat/webapps/root/的全部數據刪乾淨,將咱們的項目解壓放進去

  

這裏須要注意一下,咱們只有三個站點,有6個Tomcat,咱們是要作負載均衡的,全部往往兩個tomcat放一個項目,將6個Tomcat安排的明明白白!

1個Nginx

而後就是修改咱們的Nginx負載均衡以及配置虛擬主機

  

悄悄的說一下,這個玩意兒我搞了一兩三個小時,爲何?由於端口,我寫的最後我還去閱讀了錯誤日誌,說是服務不可用,你看上面個人tomcat端口,去尼瑪的 800一、8002...我就說Nginx配置文件檢查也經過,可是啓動就是502,單獨訪問也能訪問,可是就是不能走這個Nginx,闖了鬼?

記得修改端口爲808一、808二、808三、...否則你可能永遠都找不到緣由!

  

Chrome? No!, Firefox? Yes!

扭開咱們的瀏覽器進行訪問測試,咱們的得力助手Chrome不出之外的開啓緩存,招蜂引蝶的我又打開了Firefox,en! 香!

效果以下:

首先對總站的負載均衡,看端口數據:

  

  

點擊"上海",背手觀察:

  

  

自信的按下成都按鈕:

  

  

好了,今天的學習總結就到這兒吧,已經很晚了,晚安!

相關文章
相關標籤/搜索