開始講之前先墨跡兩個基礎知識,httpd.conf的主配置文件中的部分說明解釋:
ServerTokens 在頁面下發顯示服務器及apache版本相關信息
Timeout n 等待三次握手的時間,不然你發起了大量三次握手的第一次連接后就再也不理我了,我也不能傻等的空消耗資源啊
KeepAlive On 開啟長連接
MaxKeepAliveRequest 100長連接最多一次請求100個資源
KeepAliveTimeout 15 長連接的時間設定為15秒
apache的工作機制有四種,叫做MPM(多道處理模塊),查看當前支持哪種模塊:httpd -l,四種MPM大體解釋如下:
mpm_winnt:Windows上用的,這就不逼逼了
prefork:預先生成進程,一個請求用一個進程響應
worker:基於線程來工作的,一個請求用一個線程響應
event:基於事件驅動模型,一個進程處理多個請求
好了,現在開始場景設計,服務器IP是192.168.100.24,在這個服務器上的192.168.100.24的80端口上跑2個網站,www.baidu.com和www.qq.com,配置步驟如下:
1、編輯/etc/httpd/conf/httpd.conf,注釋DocumentRoot "/var/www/html"這一行,注釋了他就表示啟用虛擬主機。特別說明,以前的版本光注釋了他還不行,還需要在配置文件中寫明在哪個地址的哪個端口上啟用虛擬主機,比如加一行:
NameVirtualHost 192.168.100.24:80,但是2.4.x的httpd版本就不需要這一行了。
2、創建baidu站點配置文件,如下:
vim /etc/httpd/conf.d/baidu.conf
<VirtualHost 192.168.100.24:80>
ServerName www.baidu.com
DocumentRoot "/var/www/baidu"
CustomLog "/var/log/http-baidu.log" combined
</VirtualHost>
3、創建qq站點配置文件,如下:
vim /etc/httpd/conf.d/qq.conf
<VirtualHost 192.168.100.24:80>
ServerName www.qq.com
DocumentRoot "/var/www/qq"
CustomLog "/var/log/http-qq.log" combined
</VirtualHost>
4、創建他們2個站點的文件目錄並提供首頁
mkdir /var/www/baidu /var/www/qq
vim /var/www/baidu/index.html
來了,二狗
vim /var/www/qq/index.html
走了,二狗
5、啟動httpd服務
systemctl start httpd
6、客戶端測試
把windows客戶端hosts文件解析www.qq.com和www.baidu.com解析到192.168.100.24上,然后通過瀏覽器來訪問這2個域名
