虛擬Web主機
來自專欄從零開始學習雲計算
虛擬Web主機定義:同一台伺服器提供多個不同的Web站點
區分方式:基於域名的虛擬主機,基於埠(後台網站一般用埠區分)的虛擬主機,基於IP地址(基於IP幾乎沒人用,幾於IP首先就要買兩個網卡,而且IP還要是公網IP,既耗錢,又複雜,還要調路由器交換機,還要能夠PING通,遠程管理,所以基於IP地址幾乎沒人用)的虛擬主機。
虛擬Web主機最主要的作用就是省錢,為什麼省錢?
默認情況下,一個httpd只有一個DocumentRoot,只有一個ServerName,一台伺服器只能裝一個httpd,也只能夠提供一個主頁,只能一個網站站點。可能一個公司有購物網站、視頻網站、新聞網站……不可能每個網站都有一台伺服器。希望用一台伺服器實現多個站點的部署,這就是虛擬Web主機。
DirectoryIndex:起始頁/首頁文件名(index.html),網頁文件名稱,在全局配置文件里也有,一般不建議修改。
配置文件:
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/*.conf 從配置文件
在主配置文件中有一行:IncludeOptional conf.d/.conf,主配置文件會把*.conf的文件全部讀一遍,為什麼還要讀一遍從配置文件?為什麼把配置分開,不全寫到主配置文件中。因為配置太多,自己的配置很難找。當打開一個很大的配置文件速度也會下降,為了配置的方便,精簡主配置的內容, 不影響配置的內容,把自定義的配置寫在從配置文件中。
為每個虛擬站點添加配置
幫助文檔,在哪裡找到配置站點文件的格式?
創建目錄驗證:
mkdir /var/www/test
echo wo shi test > /var/www/test/index.html
然後重啟服務:systemctl restart httpd
然後elinks驗證:
乃nslookup可以解析出IP地址:
httpd服務訪問控制
/etc/httpd/conf/httpd.conf 在全局主配置文件中
使用<Directory>配置區段
-每個文件夾自動繼承其父目錄的ACL訪問許可權
-除非對子目錄有明確設置
上面兩張圖的配置意思是,根下除了/var/www目錄,其它的客戶端都不能訪問。
創建一個網站,只允許一台主機server0訪問
先創建一個目錄mkdir /var/www/abc/private
然後重定向 echo 私密 > /var/www/abc/private/index.html
然後cat一下,/var/www/abc/private/index.html,會出現私密
此時沒有修改配置文件,所以不需要重啟服務
驗證:elinks -dump server0.exampe.com
只允許本機訪問,Directory配置如下,迴環介面訪問,只允許本機和伺服器訪問,操作如下圖:
然後systemctl restart httpd.servive重啟驗證一下:
最後
思路 :客戶端訪問服務端資源 要考慮
1.防火牆是否限制(上面已經設置為trusted沒有限制)
2.服務本身的訪問控制
3.SELinux是否限制
推薦閱讀: