Nginx多虛擬主機配置
一、Nginx的應用概述
Nginx作為一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。主要有以下3方面的應用:
1、http伺服器
Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、虛擬主機
可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
3、反向代理,負載均衡
當網站的訪問量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。
本文主要講下實現多虛擬主機的配置,應該如何做
二、什麼是虛擬主機
虛擬主機使用的是特殊的軟硬體技術,它把一臺伺服器主機分成一臺臺“虛擬”的主機,每臺虛擬主機都可以具有獨立的域名,具有完整的Intemet伺服器功能(WWW、FTP、Email等),同一臺主機上的虛擬主機之間是完全獨立的。從網站訪問者來看,每一臺虛擬主機和一臺獨立的主機完全一樣。
利用虛擬主機,不必為每個要執行的網站提供一臺單獨的Nginx伺服器或單獨執行一組Nginx程序。虛擬主機提供了在同一臺伺服器、同一組Nginx程序上執行多個網站的功能。
可以實現在同一臺伺服器上執行多個網站,並且網站之間相互獨立各不干擾。
三、基於IP 的虛擬主機配置
1、如果是多網絡卡就可以直接使用不同的IP地址,如果是單網絡卡則再系統中虛擬出兩個網絡卡,設定為不同的IP地址
將/etc/sysconfig/network-scripts/ifcfg-eth0檔案複製一份,命名為ifcfg-eth0:1
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
修改其中內容:
DEVICE=eth0:1
IPADDR=192.168.56.127
其他項不用修改,然後執行service network restart 重啟網路服務
此時我們就有兩個IP地址:
IP1=192.168.56.126
IP2=192.168.56.127
2,修改nginx配置檔案
在nginx/conf/nginx.conf是nginx核心配置檔案,nginx對虛擬主機的配置,一個server就是一個虛擬主機。Nginx對於多虛擬主機的支援,主要是對server標籤的新增,指定location啟動路徑即可。
1)先將/nginx/html檔案複製成兩份,修改html/index.html檔案,用於標記不同nginx首頁資訊。
2)修改nginx.conf配置檔案,新增兩個server節點,指定ip
worker_processes 4;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 192.168.56.126:80;
server_name localhost;
location / {
root html;
index index.html ;
}
}
server {
listen 192.168.56.127:80;
server_name localhost;
location / {
root test;
index index.html ;
}
}
}
完成後重新載入配置
nginx -s reload
後面將結果貼上
四、基於不同埠的虛擬主機配置
在nginx conf 的配置目錄下新增,port2.conf ,然後在nginx.conf 裡面 include port2.conf
worker_processes 4;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include port2.conf;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
port2.conf
server {
listen 81;
server_name localhost;
location / {
root test;
index index.html ;
}
}
完成之後重新載入配置:
nginx -s reload
後面將結果貼上
五:基於不同域名的虛擬主機:
為了測試,我們在hosts裡面新加了兩個 IP 域名解析
192.168.2.158 1.imoocc.com
192.168.2.158 2.imoocc.com
這樣直接將nginx.conf 裡面的hostname 修改為 1.imoocc.com port2.conf 裡面的hostname 修改為 2.imoocc.com,,然後 nginx -s reload
後面將結果貼上