Centos7.2下使用Nginx實現虛擬機器主機

來源:互聯網
上載者:User
一、前言

首先需要確保在你的 Linux 系統中已經正確安裝 Nginx ,當然如果沒有安裝 Nginx 請參考

系統內容:
Linux 環境: centos-7.2
Nginx 環境: nginx-1.9.9

二、關於 Nginx
Nginx是一款高效能的http 伺服器/反向 Proxy伺服器及電子郵件(IMAP/POP3)Proxy 伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬並發連結,並且cpu、記憶體等資源消耗卻非常低,運行非常穩定。開源、免費。


三、使用 Nginx 能做什嗎?
1、http伺服器:Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、虛擬機器主機:可以實現在一台伺服器虛擬出多個網站。例如個人網站使用的虛擬機器主機。
3、反向 Proxy/負載平衡:當網站的訪問量達到一定程度後,單台伺服器不能滿足使用者的請求時,需要用多台伺服器叢集可以使用nginx做反向 Proxy。並且多台伺服器可以平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閑置的情況。


四、使用 Nginx 實現虛擬機器主機
在這兒我們需要知道,為什麼需要建立虛擬機器主機,在實際生產環境中,我們的業務都是通過公網進行訪問的,
我在搭建雲端服務器時,一個雲端服務器對應一個公網 IP ,所以公網 IP 對於一般的公司是非常稀缺的資源,
對於一些大型的公司,如:BAT,可能就會無所謂了。
所以在這兒使用 Nginx 實現虛擬機器主機,可以實現在同一台服務運行多個網站,而且網站之間互相不干擾。


同一個伺服器可能有一個ip,網站需要使用80連接埠,但是網站的網域名稱不同。
區分不同的網站有三種方式:

1、http服務
2、實現虛擬機器
1) 基於ip的虛擬機器
2) 基於連接埠的虛擬機器
3) 基於網域名稱的虛擬機器
3、反向 Proxy、負載平衡

五、IP區分虛擬機器主機

在一台伺服器上綁定多個 IP 位址。
方法一:
使用標準的網路設定工具(比如ifconfig和route命令)添加lP別名,

輸入命令 “ ifconfig ” 查看當前 ip 配置情況,如:


在 ens33 網卡再綁定一個 ip:192.168.78.142 ,命名該網卡為 ens33:1

/sbin/ifconfig ens33:1 192.168.78.142 broadcast 192.168.78.255 netmask 255.255.255.0 up/sbin/route add -host 192.168.78.142 dev ens33:1

虛擬網卡建立完成後,如:



方法二:
1、將 /etc/sysconfig/network-scripts/ifcfg-ens33 檔案複製一份,

進入到該目錄,輸入命令 “ cp ifcfg-ens33 ifcfg-ens33:1 -r ” 命名為 ifcfg-ens33:1 ,如:


2、修改設定檔,輸入命令 “ vi ifcfg-ens33:1 ” ,修改如下內容,

NAME=ens33:1DEVICE=ens33:1IPADDR=192.168.78.142

其他項不用修改,修改完成後,如:


建立完成後,測試新的 IP 是否綁定成功,在 DOS 視窗中輸入命令 “ ping 192.168.78.142 ” ,如:


注意:使用方法一綁定的 IP ,在系統重啟後,會自動解除綁定,需要重新綁定,方法二則是永久的,這個是實操的結論。
3、重啟系統,
輸入命令 “ reboot ” ,重啟系統再輸入命令 “ ifconfig ” 就可以看到正常建立了一個新的網卡 ,
如:

六、nginx 實現虛擬機器

1)、配置nginx基於ip地址的虛擬機器主機
準備兩個標識nginx 的 HTML,用於在測試時,好區別:進入到 /usr/local/nginx 目錄下,將 html 分別複製兩份,

在修改下面 index.html 的內容,這兒較簡單就不在寫了,如果不知道請留言或私信,如:


修改 nginx 的設定檔,輸入命令 “ vi conf/nginx.config ”

方便讀者的複製,我在這兒把不需要的刪除了,內容如下:

    server {        listen       80;        server_name  192.168.78.141;        location / {            root   html-141;            index  index.html index.htm;        }    }    server {        listen       80;        server_name  192.168.78.142;        location / {            root   html-142;            index  index.html index.htm;        }    }

如所示:


測試nginx 虛擬機器主機是否可以正常訪問,

測試 192.168.78.141 虛擬機器主機,如:




測試 192.168.78.142 虛擬機器主機,如:




2)、配置 nginx 基於連接埠的虛擬機器主機
還是老規矩,準備兩個標識 nginx 的 HTML,用於在測試時好區別:進入到 /usr/local/nginx 目錄下,將 html 分別複製兩份,

在修改下面 index.html 的內容,這兒較簡單就不在寫了,如果不知道請留言或私信,如:


修改 nginx 的設定檔,輸入命令 “ vi conf/nginx.config ”

方便讀者的複製,內容如下:

server {        listen       81;        server_name  192.168.78.141;        location / {            root   html-81;            index  index.html index.htm;        }    }    server {        listen       82;        server_name  192.168.78.141;        location / {            root   html-82;            index  index.html index.htm;        }    }

如所示:


重啟Nginx 後,測試nginx 虛擬機器主機是否可以正常訪問,

測試 81連接埠的 虛擬機器主機,如:


測試 82連接埠的 虛擬機器主機,如:





3)、基於網域名稱的虛擬機器主機
基於網域名稱的虛擬機器主機是最有用的虛擬機器主機配置方式。
即一個網域名稱只能綁定一個ip地址,一個ip地址可以被多個網域名稱綁定。


實現基於網域名稱的虛擬機器主機,在這兒還需要修改 Linux 的 HostName,當然還可以通過 這個工具進行修改 ,對於互連網開發的人來說,經常變更 host 必不可免。每次我們都一遍一遍的去修改hosts檔案真是很累,如果能更快速的修改成不同hosts,這兒為大家推薦一個好用的軟體 SwitchHosts ,輕鬆一鍵切換。

以管理員身份開啟,然後就可以設定網域名稱和ip的映射關係,新增一個本地解決方案,鍵入如下內容,

192.168.78.141 www.12345.com192.168.78.141 register.12345.com192.168.78.141 login.12345.com

如:




註:修改window的hosts檔案:(C:\Windows\System32\drivers\etc)


基於 Nginx 網域名稱的虛擬機器主機配置,修改內容如:


    server {        listen       80;        server_name  www.12345.com;        location / {            root   html;            index  index.html index.htm;        }    }    server {        listen       80;        server_name  register.12345.com;        location / {            root   html-81;            index  index.html index.htm;        }    }    server {        listen       80;        server_name  login.12345.com;        location / {            root   html-82;            index  index.html index.htm;        }    }

如所示:



修改設定檔後,需要 nginx 重新載入設定檔。

測試 www.12345.com,如:


測試 register.12345.com,如:


測試 login.12345.com,如:


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.