Apache虚拟主机的几种基本配置

虚拟主机是服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP、FTP、邮件等多种服务。将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外展现为一个服务器,从而充分利用服务器硬件资源。如果划分是系统级别,则成为虚拟服务器。

一、虚拟主机具有三种建立模式:
1、基于IP地址
2、基于端口
3、基于FQDN

好,废话不多说,直接上例子:
1、基于IP
如果希望使用172.16.4.1可以访问到/www/htdocs目录的内容,使用172.16.4.2可以访问到/www/web2目录中的内容,就需要配置/etc/httpd/conf/httpd.conf文件中的虚拟主机区域:

  1. <VirtualHost 172.16.4.1>
  2. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  3. DocumentRoot /www/htdocs            ##这里指的网页存放的目录
  4. ServerName 172.16.4.1               ##这里指的是网站的访问的IP地址
  5. Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点
  6. CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点
  7. </VirtualHost>
  8. <VirtualHost 172.16.4.2>
  9. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  10. DocumentRoot /www/web2              ##这里指的网页存放的目录
  11. ServerName 172.16.4.2               ##这里指的是网站的访问的IP地址
  12. Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点
  13. CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点
  14. </VirtualHost>

注:这里默认监听的端口是80,如果需要重新设置,只需要在IP地址后面跟上端口号即可。

2、基于端口
如果希望使用172.16.4.1的80端口访问/www/htdocs目录的内容,使用172.16.4.1的8080端口访问/www/web2目录的内容,就需要在/etc/httpd/conf/httpd.conf里做如下的配置:

  1. <VirtualHost 172.16.4.1:80>
  2. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  3. DocumentRoot /www/htdocs            ##这里指的网页存放的目录
  4. ServerName 172.16.4.1:80            ##这里指的是网站的访问的IP地址以及端口号
  5. Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点
  6. CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点
  7. </VirtualHost>
  8. <VirtualHost 172.16.4.1:8080>
  9. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  10. DocumentRoot /www/web2              ##这里指的网页存放的目录
  11. ServerName 172.16.4.2:8080          ##这里指的是网站的访问的IP地址已经端口号
  12. Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点
  13. CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点
  14. </VirtualHost>

3、基于FQDN,这也是最常用的方法
如果需要使用www.coolinuz.com访问/www/htdocs目录下的内容,使用www.magedu.com目录下的内容时,就需要将虚拟主机按照下面的配置方式进行配置:

  1. <VirtualHost 172.16.4.1>
  2. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  3. DocumentRoot /www/htdocs            ##这里指的网页存放的目录
  4. ServerName www.coolinuz.com         ##这里指的是访问网站时用的域名即FQDN
  5. Errorlog /var/log/htdocs_erro.log       ##这里是定义访问网站错误日志的存放地点
  6. CustomLog /var/log/htdocs_access.log        ##这里是定义访问网站的日志存放地点
  7. </VirtualHost>
  8. <VirtualHost 172.16.4.1>
  9. ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址
  10. DocumentRoot /www/web2              ##这里指的网页存放的目录
  11. ServerName www.magedu.com           ##这里指的是网站的访问的IP地址已经端口号
  12. Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点
  13. CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点
  14. </VirtualHost>

注:当使用基于FQDN建立虚拟主机时还需要开启这项<NameVirtualHost 172.16.4.1:80>,该项在httpd-2.2.3的配置文件中是存在的,在httpd-2.4.1中没有该项。

二、别名的配置
当需要用户请求的URL过长时,在Apache中可以通过别名的配置减少客户端URL的输入量,并且通过别名可以跳转网页存放的目录,

例如:
apache的默认存放网页目录为/www/htdocs中,其访问FQDN为www.coolinuz.com,现需要访问/www/phpmyadmin目录中的网页,那么就可以使用别名来定义,具体配置如下:

  1. NameVirtualHost 172.16.4.1:80
  2. <VirtualHost 172.16.4.1:80>
  3. Alias /php "/www/phpmyadmin"
  4. ServerAdmin agony@example.com
  5. DocumentRoot /www/htdocs
  6. ServerName www.coolinuz.com
  7. Errorlog /var/log/htdocs_erro.log
  8. CustomLog /var/log/htdocs_access.log
  9. </VirtualHost>

这时用户只需要在将URL置于www.coolinuz.com/php即可正常访问/www/phpmyadmin目录中的内容。

Alias string FilePath
string:指访问原网页的URL后面追加的那段字符串
FilePath:指需要跳转到哪个目录。

三、客户端的访问控制
Apache默认情况下,允许所有客户端对已配置好的网站进行访问,通过Order、Allow、From、Deny这些参数来允许和阻止指定客户端对网站中的目录或内容的访问控制的。

客户端的制定方法:
1、具体的IP地址
2、指定的网络
3、FQDN
4、域
5、所有的客户端,使用关键字"All"

例如:www.coolinuz.com这个网站只允许172.16.0.0/16网络中的主机访问。

  1. <VirtualHost 172.16.4.1:80>
  2. ServerAdmin agony@example.com
  3. DocumentRoot /www/htdocs
  4. ServerName www.coolinuz.com
  5. Errorlog /var/log/htdocs_erro.log
  6. CustomLog /var/log/htdocs_access.log
  7. <Directory /www/htdocs>
  8. Order Allow,Deny
  9. Allow From 172.16.0.0/16
  10. </Directory>
  11. </VirtualHost>

注:Order Allow,Deny,如果没有其他的Allow或Deny定义,则其默认动作为Order最后一个动作,在这里是Deny,如果是"Order Deny,Allow",则其默认动作为Allow。

四、基于用户认证的方式进行访问
在Apache的默认情况下,允许客户端进行匿名访问,Apache可以实现基于身份认证和摘要式身份验证。这里只做基本身份验证的实现详解。
在做基本身份验证时,认证用户来源可以是htpasswd工具生成的密码文件。
具体实现步骤:
1、使用apache自带的htpasswd工具生成密码文件来作为用户访问认证的来源
格式htpasswd options FilePath user
    -c :第一次创建时使用该选项
    -m :将密码使用MD5加密存放
    -D :从密码文件中删除用户

如:创建一个用户redhat,将密码文件存放在/etc/httpd/.htpasswd
#htpasswd -cm /etc/httpd/.htpasswd redhat
删除用户
#htpasswd -D /etc/httpd/.htpasswd redhat

2、对指定的网页目录使用基本身份认证

如对www.coolinuz.com网站的访问需要基于用户认证
配置apache的主配置文件:/etc/httpd/conf/httpd.conf

  1. NameVirtualHost 172.16.4.1:80
  2. <VirtualHost 172.16.4.1:80>
  3. ServerAdmin agony@example.com
  4. DocumentRoot /www/htdocs
  5. ServerName www.coolinuz.com
  6. Errorlog /var/log/htdocs_erro.log
  7. CustomLog /var/log/htdocs_access.log
  8. <Directory /www/htdocs>
  9. AuthName PRIVATE            ##这里指在需要用户认证时的提示信息
  10. AuthType Basic              ##这里指认证的类型为基本认证
  11. AuthUserFile /etc/httpd/.htpasswd   ##这里指存放密码文件的路径
  12. Require valid-user          ##这里指密码文件中允许访问的用户,这里指的是全部,如果要具体允许某些用户则可写为"Require User redhat centos"
  13. </Directory>
  14. </VirtualHost>

好了,到此apache的几种常用的配置到此就完成了,只需要重新载入配置文件或者重启服务即可生效了,下篇将讲述apache启用https功能。

转载于:https://blog.51cto.com/grass51/812523

Apache服务器之------虚拟主机多功能配置相关推荐

  1. Apache之——多虚拟主机多站点配置的两种实现方案

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48213523 Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名 ...

  2. Apache服务(二)Apache服务的虚拟主机和内部访问控制

    一.Apache的虚拟主机 1 编辑本地解析文件 vim /etc/hosts 172.25.254.127 www.westos.com news.westos.com music.westos.c ...

  3. 配置Apache服务器的虚拟主机

    配置Apache服务器的虚拟主机 (1)启用apache的虚拟主机功能 LoadModule vhost_alias_module modules/mod_vhost_alias.so (2

  4. apache服务构建虚拟web主机

    apache服务构建虚拟web主机 一.虚拟web主机的类型 1.虚拟 Web 主机介绍 2.apache服务支持的三种虚拟web主机类型 2.1.基于域名的类型 2.2.基于IP地址的类型 2.3. ...

  5. 关于apache虚拟主机htttpd的配置实例 (更新中)

    关于apache虚拟主机htttpd的配置实例(更新中) 前提: 首先使用虚拟主机我们需要关闭取消中心主机 #vim/etc/httpd/conf/httpd.conf中查找DocumentRoot加 ...

  6. Centos 7 环境下,如何使用 Apache 实现 SSL 虚拟主机 双向认证 的详细教程:

    1. testing ! ... 1 1 原文参考链接: http://showerlee.blog.51cto.com/2047005/1266712 很久没有更新LAMP的相关文档了,刚好最近单位 ...

  7. mac中apache服务器及虚拟主机配置

    输入 sudo apachectl start,这样Apache就启动了.打开Safari浏览器地址栏输入 "http://localhost",可以看到内容为"It w ...

  8. Apache 2.2 虚拟主机配置(本人推荐的)

    1.域名问题 假设我们有两个域名:www.aaa.com和www.bbb.com 为了方便测试,我们可以通过系统下的hosts文件,设定解析这两个域名时对应的ip,在xp系统盘的 windows\sy ...

  9. linux下安装iasp以及apache多站点虚拟主机配置

                      安装配置 1.     linux下安装iasp 1.1需要准备的的安装包: httpd-2.0.59.tar.gz(最好选该版本,2.2版本在安装配置完后启动出错 ...

最新文章

  1. 分享我的第一个asp.net core开发过程
  2. Mongodb 添加删除分片与非分片表维护
  3. 定义一个不能被拷贝的类
  4. 1-2 通过SQL管理数据库文件
  5. 在 MyBatis 里,如何将 JSON 型字段到 Java 类的映射
  6. linux鼠标触摸屏应用程序,在Ubuntu环境下实现插入鼠标自动关闭触摸板
  7. Hibernate-级联操作
  8. 系统调用syscall---用户态切换到内核态的唯一途径
  9. C++11 并发指南一(C++11 多线程初探)
  10. 分布式事务最终一致性-CAP框架轻松搞定
  11. xgboost参数_XGBoost实战和参数详解
  12. 特斯拉市值站上万亿元大关,BBA如何在“自动驾驶”上做空它?
  13. Open3d之彩色点云配准
  14. Fortran 注释符号
  15. 《MBA一日读2.0 读书笔记》
  16. 用iPad编写C/C++代码(计算机考研党也能用iPad写算法题)
  17. 【虚拟仿真】Unity3D中实现UI跟随3D模型旋转移动、UI一直面朝屏幕
  18. XCode6 模拟器键盘不显示解决方案
  19. moviepy音视频剪辑:与大小相关的视频变换函数详解
  20. outlook邮箱邮件大小限制_Office Outlook 2010、2013附件大小超过了允许的范围限制三种解决方法图解...

热门文章

  1. 20191020:(leetcode系习题)检测大写字母
  2. adb 最大连接_工具集 | Android Studio—使用 WI-FI 进行 ADB 调试
  3. 机器人车间气管_大开眼界!机器人焊装车间火力全开
  4. postman提交文件及get、post请求
  5. vb 关于窗口样式的API以及处理文本的API参考
  6. DRP:基本环境安装中遇到那些事儿
  7. 英语总结系列(六):激情燃烧的岁月
  8. JQuery的click、bind、delegate、off、unbind
  9. Android断点续传下载器JarvisDownloader
  10. Spring Data JPA使用Sort进行排序(Using Sort)(转)