Nginx 和Apache 中的虛擬主機的概念

 在部署環境的時候,有時候會引用到虛擬主機的概念,什麼是虛擬主機呢,博主以前一直把虛擬主機的概念沒搞清楚,致使在部署的時候,一直動不動就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; 
        } 
    }
相關文章
相關標籤/搜索