利点
Macroを使うと、
6ファイルあり、それぞれを別に編集したり、
インクルードしたりしていたコンフィグ類を、1ファイルに集約でき、
更新漏れもなくなりますね。
apache2.4のMacro例
複数編集の必要があったコンフィグを、超絶管理しやすいコンフィグに修正した例をどうぞ
sedの部分を消して自分用に直せばちゃんと動きます。
マクロ化した 6サーバ分のコンフィグ
<Macro VHost $name $domain>
<VirtualHost *:443>
SSLStrictSNIVHostCheck off
SSLCompression off
AddDefaultCharset UTF8
ServerSignature Off
DocumentRoot "/var/www/$name"
ServerName $domain
SetOutputFilter DEFLATE
Header set Strict-Transport-Security "max-age=30;"
### SSL設定
ErrorLog "/var/log/httpd/$name.error_log"
CustomLog "/var/log/httpd/$name.access_log" combined env=!nolog
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
SSLCertificateFile /etc/httpd/conf/ssl/$domain.signed.crt
SSLCACertificateFile /etc/httpd/conf/ssl/internal.$domain.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl/$domain.com.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
### 外部ファイルに記載したSED 停止
ExtFilterDefine cdn mode=output intype=text/html cmd="/bin/sed -f /etc/httpd/conf.d/cdn.sed"
<Location />
SetOutputFilter cdn
</Location>
RewriteEngine On
SSLProxyEngine On
DirectorySlash On
RewriteCond %{REQUEST_METHOD} ^GET$
### カテゴリを調整
RewriteRule /store/aaaaaaaaa /products/list.php?category_id=1 [P]
RewriteRule /store/bbbbbbbbb /products/list.php?category_id=2 [P]
RewriteRule /store/ccccccccc /products/list.php?category_id=3 [P]
RewriteRule /store/ddddddddd /products/list.php?category_id=4 [P]
</VirtualHost>
</Macro>
Use VHost master domain.com
Use VHost tokyo tokyo.domain.com
Use VHost nagoya nagoya.domain.com
Use VHost oosaka oosaka.domain.com
Use VHost fukuoka fukuoka.domain.com
Use VHost hokkaido hokkaido.domain.com
UndefMacro VHost