在虚拟主机的定义中使用正则expression式

我必须在服务器configuration文件中定义大约100个子域虚拟主机条目。 我想知道是否有任何方法使用正则expression式来增加apacheconfiguration文件中的代码?

你应该看看这个如何从Apache文档,我认为这是你需要在这里:
http://httpd.apache.org/docs/2.2/vhosts/mass.html

基本的想法是用dynamic地解决所有的静态configuration。 这具有许多优点:

  • 你的configuration文件更小,所以Apache启动速度更快,内存更less。

  • 添加虚拟主机只需要在文件系统和DNS中创build合适的目录 – 不需要重新configuration或重新启动Apache。

更新:

使用大容量虚拟主机禁止使用不同的日志文件:

主要缺点是每个虚拟主机不能有不同的日志文件; 但是,如果你有很多的虚拟主机,那么这样做是可疑的,因为它吃文件描述符。 最好login到一个pipe道或一个先进先出(fifo),然后安排另一端的进程将日志分发给客户(也可以积累统计数据等)。

然而,这不是一个真正的问题,因为您可以使用%v筛选器将ServerName放在每个logging的请求前面,然后可以根据需要过滤和拆分日志。

一个好的做法是将这些日志放在一个mysql数据库(即时或通过cronjob,pipe道或fifo文件),因为SQL是一个很好的工具,从中提取有用的信息。
看看这篇介绍通过mod_log_mysql设置(直接)数据库日志的文章:
http://onlamp.com/pub/a/apache/2005/02/10/database_logs.html

将日志直接存储在数据库中通过ARCHIVE存储引擎, mysql可以是一个很好的解决scheme,但是它有其自身的局限性(写入locking表)。 另一种方法是在一个更标准的存储引擎(例如innodb,xtradb)上构build你的系统,如果你已经拥有了一个mysql服务器,那么在其他解决scheme之前我会尝试一下,因为它不需要太多的学习。

如果你觉得更有冒险精神 ,你可以看看MongoDB ,作为一个面向文档的数据库,它特别适合作为日志存储系统(快速,强大的过滤function,插入/读取速度),但一定要有一个良好的专用服务器,因为你需要RAM才能充分performance。

你会在这里find关于MongoDB日志logging的细节:

不,但你想做什么? 在<VirtualHost>行中有一个正则expression式是没有意义的。

ServerAlias可以有通配符,而不是正则expression式; 这可能会给你你需要什么?