Apache構建虛擬Web主機

Apache HTTP Server是開源軟件項目的傑出表明,基於標準的HTTP網絡協議提供網頁瀏覽服務,在Web服務器領域中長期保持着超過半數的份額。Apache服務器能夠運行在Linux、UNIX、Windows等多種操做系統平臺中。html

Apache的主要特色:

  • 開放源代碼
  • 跨平臺應用
  • 支持各類Web編程語言
  • 模塊化設計
  • 運行很是穩定
  • 良好的安全性

在同一臺Apache服務器中運行多個web站點,其中的每個站點實際上不會佔用着整個服務器,經過虛擬web主機服務能夠充分利用服務器的硬件資源,從而下降網站構建以及運行成本。虛擬主機主要類型分爲三種:web

  1. 基於IP端口
    對每一個不用域名的虛擬主機設置單獨IP,所以,在服務器中須要設置多個網卡,對於硬件成本和IP成本要求都高,此種方式在實際中不經常使用,本文暫且略過。
  2. 基於端口IP
    使用TCP不用端口來區分不用的站點內容,須要在用戶訪問站點時跟上指定端口號纔可實現訪問。
  3. 基於主機名
    每一個服務器主機能夠構建多個不用域名服務器,但都使用相同IP地址;此種方式在實際中較爲經常使用。

實驗環境:

  • RHEL6.5操做系統
  • 服務器IP地址:192.168.100.110
  • RHEL鏡像光盤掛載至/mnt目錄下

環境部署

1.檢查並安裝httpd服務器

rpm -q httpd               //檢查httpd服務器是否已安裝
httpd-2.2.15-29.el6_4.x86_64                   //已安裝httpd服務器

2.關閉防火牆和加強安全功能

service iptables stop
setenforce 0

創建Apache虛擬目錄(用戶訪問控制)

vim /etc/httpd/conf/httpd.conf           //編輯httpd配置文件

Listen 192.168.100.110:80 //更改監聽地址和監聽端口
#Listen 80 //註釋IPV6的監聽
ServerName www.yun.com:80 //設置主機名編程

vim /etc/httpd/conf.d/vdir.conf //在子配置目錄下建立虛擬目錄配置文件vdir.conf

//如下爲寫入vdir.conf中的內容
Alias /test "/opt/test/" //設置別名
<Directory "/opt/test/"> //定義虛擬目錄
Options Indexes MultiViews FollowSymLinks
AllowOverride None
AuthName "hello" //認證名稱
authtype basic //基本認證方式
authuserfile /etc/httpd/user //指定用戶認證文件存放位置
#authgroupfile /etc/httpd/group
#require Valid-user //設置用戶訪問權限
#require user test
#Require group admin
</Directory> vim

mkdir –p /opt/test          //建立虛擬目錄站點      
echo 「this is vdir test」 > /opt/test/index.html     //新建站點首頁  
service httpd start     //開啓httpd服務

Apache構建虛擬Web主機

用戶受權訪問:

vim /etc/httpd/conf.d/vdir.conf     //編輯服務子配置文件

<Directory "/opt/test/"> //定義虛擬目錄
Options Indexes MultiViews FollowSymLinks
AllowOverride None
AuthName "hello" //認證名稱
authtype basic //基本認證方式
authuserfile /etc/httpd/user //指定用戶認證文件存放位置
#authgroupfile /etc/httpd/group
require Valid-user //設置用戶訪問權限
#require user test
#Require group admin
</Directory>安全

htpasswd –c /etc/httpd/user zhangsan            //建立受權訪問用戶zhangsan
service httpd restart               //重啓httpd服務

再次訪問網頁時會跳出帳號密碼驗證登陸窗口:服務器

Apache構建虛擬Web主機

相同IP不一樣端口狀況下:

1. 在/etc/httpd/conf.d目錄下新建vport.conf(虛擬目錄文件)

cd /etc/httpd/conf.d/
vim vport.conf                  //新建vport.conf配置文件

寫入如下內容:網絡

NameVirtualHost 192.168.100.110:80 //虛擬主機IP地址及端口號
<VirtualHost 192.168.100.110:80>
ServerAdmin webmaster@dummy-host.example.com //管理員郵箱
DocumentRoot /opt/yun/ //網頁站點目錄
ServerName www.yun.com //域名
ErrorLog logs/benet.com-error_log //錯誤日誌
CustomLog logs/benet.com-access_log common //訪問日誌
</VirtualHost>
NameVirtualHost 192.168.100.110:81 //虛擬主機IP地址及端口號
<VirtualHost 192.168.100.110:81>
ServerAdmin webmaster@dummy-host.example.com //管理員郵箱
DocumentRoot /opt/yun01/ //網頁站點目錄
ServerName www.yun.com //域名
ErrorLog logs/benet.com-error_log //錯誤日誌
CustomLog logs/benet.com-access_log common //訪問日誌
</VirtualHost>編程語言

2. 建立yun、yun01的站點目錄,新建各站點首頁文件

mkdir /opt/yun /opt/yun01       //建立站點目錄
echo 」yun port 80 test」 > /opt/yun/index.html   //添加yun站點的首頁內容
echo 」yun01 port 81 test」 > /opt/yun01/index.html  //添加yun01站點的首頁內容

3. 修改httpd.conf配置文件

vim /etc/httpd/conf/httpd.conf
Listen 192.168.100.110:81           //添加81端口的監聽地址

4. 重啓httpd服務

service httpd restart

5. 測試

Apache構建虛擬Web主機
Apache構建虛擬Web主機

相同IP不一樣主機狀況下:

1. 在/etc/httpd/conf.d目錄下新建vhost.conf

cd /etc/httpd/conf.d/
vim vhost.conf          //新建vhost.conf配置文件

寫入如下內容:ide

NameVirtualHost 192.168.100.110:80 //虛擬主機名稱
<VirtualHost 192.168.100.110:80>
ServerAdmin admin@benet.com //管理員郵箱
DocumentRoot /opt/benet/ //網站站點目錄
ServerName www.benet.com //域名
ErrorLog logs/benet.com-error_log //錯誤日誌
CustomLog logs/benet.com-access_log common //訪問日誌
</VirtualHost>模塊化

mkdir /opt/benet            //建立www.benet.com的站點
echo 「this is benet」 > /opt/benet/index.html        //建立首頁及添加內容

2. 安裝DNS服務器

安裝bind軟件包:

rpm –ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_x86_64.rpm

編輯主配置文件

vim /etc/named.conf

options {
listen-on port 53 { 192.168.100.110; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;

編輯區域配置文件

vim /etc/named.rfc1912.zones

zone "yun.com" IN {
type master;
file "yun.com.zone";
allow-update { none; };
};

zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};

在/var/named目錄下複製模板文件

cd /var/named
cp –p named.localhost yun.com.zone

編輯區域數據配置文件

vim yun.com.zone

Apache構建虛擬Web主機

cp –p yun.com.zone benet.com.zone     //yun和benet區域數據配置文件相同,可直接複製

3.啓動(重啓)named及httpd服務:

service httpd restart
service named start

4.測試

Apache構建虛擬Web主機
Apache構建虛擬Web主機

相關文章
相關標籤/搜索