在apache配置文件中使用IfDefine以及IfModule指令来快速更改配置

原创 2006年06月13日 01:21:00

Apache允许使用IfDefine以及IfModule指令来快速而且更容易的更改配置。使用IfDefine以及IfModule标签后,无需更改http.conf文件即可以快速的更改运行中的Apache得配置。IfDefine标签允许在命令行中使用某个标志来指定某些配置选项是否出于启用状态,如:

[root@ilinux.com.cn]#/usr/local/apache2/bin/apachectl –D SSL

       这个命令就将启用apache配置文件中一个名为SSL的标志。也即将启用如下标签中的配置部分.(详细内容见我的另一篇文章WINDOW环境下Apache-2.0.58+mod_ssl+mod_jk-2.0.55+Tomcat-5.5.16的整合):

<IfDefine SSL>
Listen 443 #监听443端口
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin

SSLSessionCache         dbm:logs/ssl-scache.log
SSLSessionCacheTimeout  300

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<VirtualHost 192.168.0.134:443> #虚拟主机IP
#  General setup for the virtual host
DocumentRoot "C:/Apache/htdocs" #根目录
ServerName www.ilinux.com.cn:443 #虚拟主机域名.没有的可以直接用IP
ServerAdmin forlinux@hotmail.com
ErrorLog logs/SSL.log
TransferLog logs/ssl_access.log

SSLEngine on #启用SSL,必须

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile conf/ssl/server.crt
#SSLCertificateFile conf/ssl.crt/server-dsa.crt

SSLCertificateKeyFile conf/ssl/server.key

#SSLVerifyClient require
#SSLVerifyDepth  10
<Files ~ "/.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent ".*MSIE.*"  nokeepalive ssl-unclean-shutdown  downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x /"%r/" %b"
</VirtualHost>                                 

</IfDefine>

 

      

       IfModuole标签具有类似的效果,其作用是先检查当前模块是否已经加载,若已经加载,则标签中的配置有效,若没有加载,则标签中的配置无效。

      

<IfModule mod_ssl.c>
    Include conf/ssl.conf
</IfModule>

以上标签同样是我在WINDOW环境下Apache-2.0.58+mod_ssl+mod_jk-2.0.55+Tomcat-5.5.16的整合一文中用到的其作用就是先检测是否启用了mod_ssl模块,若启用了,就包含conf/ssl.conf文件。这样做的好处是,若我想禁止mod_ssl,只需要注释如下一行:

#LoadModule ssl_module modules/mod_ssl.so

       怎么样,用这两个配置指令,蛮方便的吧。当然Apache的能力远不止于此,更多的功能还需要大家在使用过程中加以领会和应用。

apache主要配置详解

1. # Deny access to the entirety of your server's filesystem. You must # explicitly permit acc...
  • sanbingyutuoniao123
  • sanbingyutuoniao123
  • 2016年05月03日 15:58
  • 9328

apache的IfDefine和IfModule设置

指令 说明 封装一组只有在启动时当测试结果为真时才生效的指令  语法 ...   作用域 server config, virtual host, directory, .htaccess  ...
  • klarclm
  • klarclm
  • 2012年07月25日 11:31
  • 10060

Apache2.4.7配置https,解决阿里云证书配置之痛

Chrome封杀80网站(http),逼迫小网开启443(https)。如果没有这个的话就会被浏览器或电脑管家认定为不安全的网站,当然可继续访问,但是当很多人投诉你的网站就会立刻想到与木马病毒相关的东...
  • nigaea
  • nigaea
  • 2017年01月05日 13:04
  • 6094

apache学习三配置文件

1、主配置文件讲解 grep -Ev "#|^$" httpd.conf >httpd.conf.ori     排除注释和空行 vi httpd.conf.ori ServerRoot "/s...
  • yujin2010good
  • yujin2010good
  • 2016年11月03日 23:55
  • 919

Apache SSL服务器配置SSL详解

1.安装必要的软件  引用  我用的是apahce2.0.61版,可以直接官方提供的绑定openssl的apache.  文件名是:apache_2.0.61-win32-x86-openssl...
  • CareChere
  • CareChere
  • 2016年08月28日 17:31
  • 1043

Apache2.4配置(全)

--用户认证 --日志切割 --差异记录 --访问控制 --域名跳转 --配置静态文件缓存 --防盗链...
  • u012291157
  • u012291157
  • 2015年06月14日 16:47
  • 17055

apache与tomcat通过mod_jk模块整合

apache和tomcat总体有两种连接方式 第一种:通过http_connector或ajp_connector协议,把请求代理到tomcat 第二种:通过连接mod_jk模块 这次重点记录下...
  • nange_nice
  • nange_nice
  • 2018年01月14日 11:56
  • 141

Apache中使用include引入共同部分的页面

前言:一般网站都会有共同的header和footer,如果该网站的网页很少,那在每一个网页里面都写一份相同的header或者footer代码是没有什么问题的,但是如果该网站的页面数量很庞大,在每一个页...
  • qq_34122603
  • qq_34122603
  • 2018年01月23日 17:15
  • 29

Apache 的 httpd.conf 详解(很实用)

ServerRoot “/usr/local“        ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定...
  • u010433704
  • u010433704
  • 2016年05月02日 14:35
  • 24168

配置Apache

1.安装完成Apache后如何配置呢,如下图步骤 2.Apache安装成功 Apache的配置主要集中在httpd.conf文件,它位于你的安装目录,比如:我安装在 3.用编辑器打开h...
  • function__
  • function__
  • 2017年01月12日 14:32
  • 9869
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在apache配置文件中使用IfDefine以及IfModule指令来快速更改配置
举报原因:
原因补充:

(最多只允许输入30个字)