Apache服务器之------虚拟主机多功能配置

简介:

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.  
  9. <VirtualHost 172.16.4.2> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName 172.16.4.2               ##这里指的是网站的访问的IP地址        
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </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.  
  9. <VirtualHost 172.16.4.1:8080> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName 172.16.4.2:8080          ##这里指的是网站的访问的IP地址已经端口号       
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </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.  
  9. <VirtualHost 172.16.4.1> 
  10.     ServerAdmin agony@example.com           ##这里指网站的管理员的邮箱地址 
  11.     DocumentRoot /www/web2              ##这里指的网页存放的目录 
  12.     ServerName www.magedu.com           ##这里指的是网站的访问的IP地址已经端口号       
  13.     Errorlog /var/log/web2_erro.log         ##这里是定义访问网站错误日志的存放地点 
  14.     CustomLog /var/log/web2_access.log      ##这里是定义访问网站的日志存放地点 
  15. </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功能。

 








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/812523,如需转载请自行联系原作者
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
7月前
|
存储 固态存储 Linux
从 0 学服务器虚拟化:VMware 搭建 3 个虚拟主机,个人 / 小企业够用的方案
服务器虚拟化技术通过在单台物理机上运行多个虚拟机,显著提升资源利用率和管理灵活性。本文以 VMware ESXi 8.0 Update 3e 为例,详解如何搭建经济实用的虚拟化环境,支持 3 个虚拟主机稳定运行,适合个人开发者和小企业降低硬件投入、实现数据本地化与安全存储。
1648 0
|
8月前
|
云安全 弹性计算 安全
阿里云服务器安全功能解析:基础防护与云安全产品参考
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题。阿里云服务器除了提供基础的防护之外,还提供了一系列安全防护类云产品,以确保用户云服务器的安全。本文将详细介绍阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品,帮助用户更好地理解和使用阿里云服务器的安全功能。
|
12月前
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
825 29
|
弹性计算 运维 Cloud Native
阿里云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站区别及选择参考
在选择阿里云产品完整自己网站搭建的时候,面对云虚拟主机、轻量应用服务器、云服务器ECS、云·速成美站和云·原生建站等多种选择,很多用户不是很清楚他们之间的区别。每种产品都有其独特的优势和适用场景,如何根据自己的需求和技术背景选择最适合的建站产品,成为了用户关注的焦点。本文将详细比较阿里云这五种建站产品的优势和劣势,以及它们的适用人群,以供选择参考。
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
官网繁忙不用怕!现在跟我一起通过视频学习阿里云《零门槛、即刻拥有 DeepSeek-R1 满血版》技术解决方案,最快两步三分钟就能拥有 免费!满血版!随时可用!支持联网搜索!带有个人知识库(RAG)!的DeepSeek 模型能力!!!
415 0
快速拥有满血全功能DeepSeek,再也不怕服务器繁忙!
|
弹性计算 运维 监控
云产品评测:云服务诊断 — ECS实例健康状态与诊断功能体验
作为一名运维工程师,我日常管理和维护云资源,确保服务稳定运行。阿里云的云服务诊断功能提供了便捷的方式实时了解和优化ECS实例的健康状态。通过健康状态功能,我能够查看CPU、内存等指标,及时发现并解决性能瓶颈,提升了约30%的工作效率。诊断功能则帮助我快速定位复杂问题,减少了40%的诊断时间,并提供详细的优化建议。尽管功能已很强大,但仍建议进一步细化诊断结果和增加自定义告警选项,以提升使用体验。我非常推荐此工具给其他运维人员。
337 22
|
弹性计算 运维 开发者
关于ECS 健康状态 诊断功能评测
这是一位开发兼运维工程师的观点,认为云资源的健康状态和诊断功能作用有限,因为大多数问题根源在于代码质量,而这些工具无法改善低下的代码质量导致的资源异常。
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
284 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
NoSQL 应用服务中间件 PHP
布谷一对一直播源码服务器环境配置及app功能
一对一直播源码阿里云服务器环境配置及要求

推荐镜像

更多