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