1. 程式人生 > >Apache搭建Web主機(虛擬目錄、分別基於IP地址、端口、主機名)

Apache搭建Web主機(虛擬目錄、分別基於IP地址、端口、主機名)

apache 基於端口區分網站 基於域名區分網站 基於ip區分網站 dns域名解析

Apache介紹

Apache HTTP Server是一款開源的網站服務軟件,在Web服務器領域中長期保持著超過半數的份額,Apache服務器可以運行在Linux、UNIX、Windows等多數操作系統平臺中。

Apache服務器在功能、性能和安全性等方面的表現都是比較突出的,可以較好地滿足Web服務器用戶的應用需求,其主要特點包括以下幾個方面:

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

構建虛擬Web主機

在同一臺Apache服務器中運行多個Web站點,其中的每一個站點實際上並不獨立占用整個服務器,通過虛擬Web主機服務可以充分利用服務器的硬件資源,從而大大降低網站構建及運行成本。

Apache支持的虛擬主機類型為以下三種:

  1. 基於IP地址

需要為每個虛擬主機使用不同的域名,且各自對應的IP地址也不相同。這種方式需要為服務器配備多個網絡接口,因此應用並不是非常廣泛;

  1. 基於IP端口

使用不同的TCP端口號來區分不同的站點內容,但是用戶在瀏覽不同的虛擬站點時需要同時指定端口號才能夠訪問;

  1. 基於主機名【常用】

每個虛擬主機使用不同的域名,但是其對應的IP地址是相同的;

實驗環境

  • rhel6.5操作系統
  • 服務器IP地址:192.168.100.5
  • rhel6.5的鏡像光盤掛載至/mnt/cdrom/

實驗內容

  1. 虛擬目錄(用戶授權限制)
  2. 基於IP地址
  3. 基於IP端口
  4. 基於主機名【常用】

部署服務

安裝Apache服務器(httpd)

1.檢查並安裝httpd服務

[root@localhost ~]# rpm -q httpd //檢查是否已安裝httpd
httpd-2.2.15-29.el6_4.x86_64
[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm

2.關閉安全設置和防火墻

setenforce 0
service iptables stop

一. 虛擬目錄(用戶授權限制)

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

ServerName www.yum01.com:80 //設置主機名
Listen 192.168.100.5:80 //設置監聽IP地址
Include conf.d/*.conf //開啟加載conf.d目錄下以.conf為後綴的配置文件

  1. 在/etc/httpd/conf.d/目錄下新建vdir.conf(虛擬目錄文件)
cd /etc/httpd/conf.d/
vim vdir.conf                       //新建vdir.conf配置文件

//以下為虛擬目錄定義配置文件

Alias /bbs "/opt/bbs/" //設置別名

<Directory "/opt/bbs/"> //定義虛擬目錄
Options Indexes MultiViews FollowSymLinks
AllowOverride None
authname "Auth Directory" //認證領域的名稱
authtype basic //基本認證方式
authuserfile /etc/httpd/user //基本認證用戶賬戶、密碼的認證文件路徑
require Valid-user //授權用戶可以進行訪問
</Directory>

3.創建/opt/bbs目錄,並新建bbs站點首頁

mkdir /opt/bbs
echo "<h1>This is bbs web.</h1>" > /opt/bbs/index.html

  1. 創建用戶認證數據文件
htpasswd -c /etc/httpd/conf.d/user zhangsan

技術分享圖片

  1. 重啟httpd服務
    service httpd restart

測試

服務器ip信息:
技術分享圖片

客戶機ping服務器測試:
技術分享圖片

訪問虛擬目錄站點:
技術分享圖片

技術分享圖片

2. 基於IP地址

待續...

3. 基於端口

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

vim vport.conf                       //新建vport.conf配置文件

NameVirtualHost 192.168.100.5:80 //虛擬主機名稱

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理員郵箱
DocumentRoot /opt/yun01/ //網站站點目錄
ServerName www.yun01.com //域名
ErrorLog logs/yun01.com-error_log //錯誤日誌
CustomLog logs/yun01.com-access_log common //訪問日誌
</VirtualHost>

NameVirtualHost 192.168.100.5:81 //虛擬主機名稱

<VirtualHost 192.168.100.5:81>
ServerAdmin [email protected] //管理員郵箱
DocumentRoot /opt/yun02/ //網站站點目錄
ServerName www.yun02.com //域名
ErrorLog logs/yun02.com-error_log //錯誤日誌
CustomLog logs/yun02.com-access_log common //訪問日誌
</VirtualHost>

2.創建/opt/yun01、/opt/yun02站點目錄,並新建各站點首頁文件(index.html)

mkdir /opt/yun01 /opt/yun02 //創建站點目錄
echo "<h1>this is yun01.com web.</h1>" > /opt/yun01/index.html //站點yun01添加index.html文件
echo "<h1>this is yun02.com web.</h1>" > /opt/yun02/index.html //站點yun02添加index.html文件

  1. 修改httpd.conf配置文件
vim /etc/httpd/conf/httpd.conf

Listen 192.168.100.5:81 //添加81端口的監聽地址

  1. 重啟httpd服務
service httpd restart

測試

訪問192.168.100.5:80
技術分享圖片
訪問192.168.100.5:81
技術分享圖片

4. 基於主機名【常用】

  1. 在/etc/httpd/conf.d/目錄下新建vhost.conf(虛擬目錄文件)
cd /etc/httpd/conf.d/
vim vhost.conf                       //新建vhost.conf配置文件

NameVirtualHost 192.168.100.5:80 //虛擬主機名稱

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理員郵箱
DocumentRoot /opt/yun03/ //網站站點目錄
ServerName www.yun03.com //域名
ErrorLog logs/yun03.com-error_log //錯誤日誌
CustomLog logs/yun03.com-access_log common //訪問日誌
</VirtualHost>

NameVirtualHost 192.168.100.5:80 //虛擬主機名稱

<VirtualHost 192.168.100.5:80>
ServerAdmin [email protected] //管理員郵箱
DocumentRoot /opt/yun04/ //網站站點目錄
ServerName www.yun04.com //域名
ErrorLog logs/yun04.com-error_log //錯誤日誌
CustomLog logs/yun04.com-access_log common //訪問日誌
</VirtualHost>

2.創建/opt/yun03、/opt/yun04站點目錄,並新建各站點首頁文件(index.html)

mkdir /opt/yun03 /opt/yun04 //創建站點目錄
echo "<h1>this is yun03.com web.</h1>" > /opt/yun03/index.html //站點yun03添加index.html文件
echo "<h1>this is yun04.com web.</h1>" > /opt/yun04/index.html //站點yun04添加index.html文件


  1. 安裝DNS服務器
    3.1 安裝bind軟件包
rpm -ivh /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

3.2 編輯主配置文件

 vim /etc/named.conf

options {
listen-on port 53 { 192.168.100.5; }; //修改指定監聽IP
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; }; //允許any(所有人)訪問
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/ Path to ISC DLV key /
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

3.3 編輯區域配置文件

vim /etc/named.rfc1912.zones

zone "yun03.com" IN {
type master;
file "yun03.com.zone";
};

zone "yun04.com" IN {
type master;
file "yun04.com.zone";
};

3.4 切換到/var/named目錄下

cd /var/named

3.5 復制模板文件

cp -p named.localhost yun03.com.zone

3.6 編輯區域數據配置文件

vim yun03.com.zone

技術分享圖片

由於yun04.com和yun03.com解析文件都一樣,這裏直接復制yun03.com.zone文件

cp -p yun03.com.zone yun04.com.zone

3.7 加入named服務並重啟該服務

chkconfig named on
service named restart //重啟named服務
service httpd restart //重啟httpd服務

測試

訪問www.yun03.com
技術分享圖片

訪問www.yun04.com
技術分享圖片

Apache搭建Web主機(虛擬目錄、分別基於IP地址、端口、主機名)