apache 允许使用IfDefine以及IfModule指令来快速而且更容易的更改配置。使用IfDefine以及IfModule标签后,无需更改http.conf文件即可以快速的更改运行中的Apache得配置。IfDefine标签允许在命令行中使用某个标志来指定某些配置选项是否出于启用状态,如:
[root@i linux .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| PHP 3?)$">
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配置文件中使用IfDefine以及IfModule指令来快速更改配置 》由 第二电脑网 原创提供,转载请注明: http://www.002pc.com/master/College/Server/Apache/18020.html
查看更多关于在apache配置文件中使用IfDefine以及IfModule指令来快的详细内容...