Apache HTTP Server是開源軟件項目的傑出表明,基於標準的 HTTP 網絡協議提供網頁瀏覽服務,在 Web 服務區領域長期保持着超過半數的份額。Apache 服務器能夠運行在Linux、Unix、Windows等多種操做系統平臺中。html
1.源代碼開放;
2.跨平臺應用;
3.支持各類 Web 編程語言;
4.模塊化設計;
5.運行很是穩定;
6.良好的安全性。編程
虛擬Web主機是指在同一臺服務器中運行多個Web站點,其中的每個站點實際上並不獨自佔用整個服務器。在實際企業應用當中,能夠充分利用服務器的硬件資源,從而大大下降網站構建及運行成本。vim
使用 httpd 能夠很是方便的搭建虛擬主機服務器,只須要運行一個httpd服務就可以同時支撐大量的 Web 站點。httpd 支持的虛擬主機類型包括如下三種:
1.基於域名:爲每一個虛擬主機使用不一樣的域名,可是其對應的IP地址是相同的。
2.基於 IP 地址:爲每一個虛擬主機使用不一樣的域名,且各自對應的 IP 地址也不相同。
3.基於端口:這種方式並不使用域名、IP 地址來區分不一樣的站點內容,而是使用不一樣的 TCP 端口號,所以要求用戶在瀏覽不一樣的虛擬站點時須要同時指定端口號才能訪問。centos
本次咱們在 CentOS7 上搭建一臺 Apache 服務器,並在這臺服務器上配置基於域名及基於端口的不一樣 Web 站點。安全
CentOS 7 (搭建httpd 網站服務,DNS 域名解析服務)
IP 地址:192.168.100.200
掛載鏡像光盤到目錄/mnt:mount /dev/cdrom /mnt服務器
搭建 httpd 服務:網絡
rpm -ivh /mnt/Packages/httpd-2.4.6-67.el7.centos.x86_64.rpm
編輯httpd.conf配置文件:編程語言
vim /etc/httpd/httpd.conf Listen 192.168.100.200:80 #Listen 80 ServerName www.wzn.com:80
關閉防火牆,開啓服務並嘗試訪問:ide
systemctl stop firewalld setenforce 0 systemctl start httpd
多個域名及端口的虛擬 Web 主機的配置文件在安裝目錄下的區域配置項中,其主要形式以下:
<Directory /> //定義"/"目錄區域的開始
Options FollowSymlinks //控制選項,容許使用符號連接
AllowOverride None //不容許隱含控制文件中的覆蓋配置
Order deny,allow //訪問控制策略的應用順序
Deny from all //禁止任何人訪問此區域
</Directory> //定義"/"目錄區域的結束模塊化
建立不一樣域名訪問的配置文件:
[root@CentOS7-1 ~]# cd /etc/httpd/conf.d/ [root@CentOS7-1 conf.d]# vim vhost.conf <Directory /var/www/html> //設置目錄訪問權限 Order allow,deny Allow from all </Directory> NameVirtualHost 192.168.100.200:80 //設置虛擬主機監聽地址 <VirtualHost 192.168.100.200:80> //設置wzn虛擬站點區域 ServerAdmin admin@wzn.com //管理員郵箱 DocumentRoot /var/www/html/wzn/ //虛擬主機目錄 ServerName www.wzn.com //域名 ErrorLog logs/wzn.com-error_log //錯誤日誌> CustomLog logs/wzn.com-access_log common //訪問日誌 </VirtualHost> NameVirtualHost 192.168.100.200:80 <VirtualHost 192.168.100.200:80> ServerAdmin admin@wzn01.com DocumentRoot /var/www/html/wzn01/ ServerName www.wzn01.com ErrorLog logs/wzn01.com-error_log CustomLog logs/wzn01.com-access_log common </VirtualHost>
爲虛擬主機準備網頁文檔:
[root@CentOS7-1 ~]# mkdir /var/www/html/wzn [root@CentOS7-1 ~]# mkdir /var/www/html/wzn01 [root@CentOS7-1 ~]# echo "<h1>this is wzn.com</h1>" > /var/www/html/wzn/index.html [root@CentOS7-1 ~]# echo "<h1>this is wzn01.com</h1>" > /var/www/html/wzn01/index.html
咱們要用到域名解析服務,安裝 bind 進行域名解析:
[root@CentOS7-1 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
編輯 bind 主配置文件:
[root@CentOS7-1 conf.d]# vim /etc/named.conf options { listen-on port 53 { 192.168.100.200; }; //監聽本機地址 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; }; //容許任意地址解析
編輯區域配置文件,將須要解析的域名放入 zone 中:
[root@CentOS7-1 ~]# vim /etc/named.rfc1912.zones ##省略部分信息## zone "wzn.com" IN { type master; file "wzn.com.zone"; allow-update { none; }; }; zone "wzn01.com" IN { type master; file "wzn01.com.zone"; allow-update { none; }; };
配置區域配置文件:
[root@CentOS7-1 ~]# cd /var/named/ [root@CentOS7-1 named]# cp -p named.localhost wzn.com.zone [root@CentOS7-1 named]# vim wzn.com.zone $TTL 1D @ IN SOA @ admin ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 192.168.100.200 www IN A 192.168.100.200
因爲 wzn01.com 的區域配置文件和 wzn.com 相同,故直接保留權限複製便可:
[root@CentOS7-1 named]# cp -p wzn.com.zone wzn01.com.zone
重啓服務並測試:
[root@CentOS7-1 named]# systemctl restart named [root@CentOS7-1 named]# systemctl restart httpd
建立不一樣端口訪問的配置文件:
[root@CentOS7-1 ~]# vim /etc/httpd/conf.d/vhostport.conf //建立獨立的配置文件 <Directory /var/www/html> //設置目錄訪問權限 Order allow,deny Allow from all </Directory> NameVirtualHost 192.168.100.200:80 //設置虛擬主機監聽地址 <VirtualHost 192.168.100.200:80> //設置wzn03虛擬站點區域 ServerAdmin admin@wzn03.com //管理員郵箱 DocumentRoot /var/www/html/wzn03 //虛擬主機目錄 ServerName www.wzn03.com //域名 ErrorLog logs/wzn03.com-error_log //錯誤日誌 CustomLog logs/wzn03.com-access_log common //訪問日誌 </VirtualHost> NameVirtualHost 192.168.100.200:8080 <VirtualHost 192.168.100.200:8080> ServerAdmin admin@wzn04.com DocumentRoot /var/www/html/wzn04 ServerName www.wzn04.com ErrorLog logs/wzn04.com-error_log CustomLog logs/wzn04.com-access_log common </VirtualHost>
爲虛擬主機準備網頁文檔:
[root@CentOS7-1 ~]# mkdir /var/www/html/wzn03 [root@CentOS7-1 ~]# mkdir /var/www/html/wzn04 [root@CentOS7-1 ~]# echo "<h1>this is wzn03.com</h1>" > /var/www/html/wzn/index.html [root@CentOS7-1 ~]# echo "<h1>this is wzn04.com</h1>" > /var/www/html/wzn01/index.html
更改主配置文件添加監聽端口 8080 :
[root@CentOS7-1 ~]# vim /etc/httpd/conf/httpd.conf ##省略部分信息# Listen 192.168.100.200:80 Listen 8080 //添加 8080 端口
重啓 httpd 服務,並經過客戶機訪問不一樣端口:
[root@CentOS7-1 ~]# systemctl restart httpd