在部署環境的時候,有時候會引用到虛擬主機的概念,什麼是虛擬主機呢,博主以前一直把虛擬主機的概念沒搞清楚,致使在部署的時候,一直動不動就404 ,或者500,或者服務器不通html
因此,什麼是虛擬主機呢? 虛擬主機概念大體同虛擬機的概念。nginx
若是你有兩個不一樣域名的網站,可是你只有一臺服務器,這時候怎麼辦?其實利用nginx或者apache均可以幫你用一臺機器來模擬多臺機器做爲服務器提供服務。apache
虛擬主機,就是把一臺物理服務器劃分紅多個「虛擬」的服務器,每個虛擬主機均可以有獨立的域名和獨立的目錄服務器
nginx的虛擬主機就是經過nginx.conf中server節點指定的,想要設置多個虛擬主機,配置多個server節點便可網站
先看一個最簡單的虛擬主機配置示例spa
server {
listen 80;
server_name a.test.com;
location / {
index index.html;
root /home/www/host_a/;
}
}
listen 80;
指定這個虛擬主機監聽的是80端口
server_name a.test.com;
指定這個虛擬主機名爲a.test.com,當用戶訪問a.test.com時,就有這個虛機主機進行處理。
多臺虛擬主機
(1)對兩個域名配置相應的虛擬主機,指定不一樣的目錄code
a.test.com -> /home/www/a
b.test.com -> /home/www/b
配置
server {
listen 80;
server_name a.test.com;
#開啓網站目錄文件列表功能,訪問目錄時列出其中的文件列表,默認不開啓
autoindex on;
index index.html;
root /home/www/a/;
}
server {
listen 80;
server_name b.test.com;
index index.html;
root /home/www/b/;
#禁止對self目錄的訪問
location /(self)/ {
deny all;
}
}