2017-06-15 48 views
2

我们正在使用木偶来管理。使用apache模块(来自Puppet)。木偶阿帕奇到期代码

试图找出语法,使木偶生成类似:

<Directory "/data/websites/mysite"> 
    ExpiresActive On 
    ExpiresDefault "access plus 0 seconds" 
    ExpiresByType text/javascript "access plus 12 hours" 
    ExpiresByType application/x-javascript "access plus 12 hours" 
    ExpiresByType text/css "access plus 12 hours" 
    ExpiresByType image/gif "access plus 12 hours" 
    ExpiresByType image/jpeg "access plus 12 hours" 
    ExpiresByType application/x-shockwave-flash "access plus 12 hours" 
</Directory> 

我尝试这样做:

apache::vhost { 'mysite': 
    servername  => 'mysite.com', 
    vhost_name  => $::ipaddress, 
    port   => '80', 
    docroot   => $docroot, 

    directories => [ 
     { 
     path => '/var/www/mysite, 
     provider => 'directory', 
     options => ['-Indexes','FollowSymLinks'], 
     expires_active => 'On', 
     expires_default => 'access plus 0 seconds', 
     expires_by_type => [ 
      {'text/javascript' => 'access plus 12 hours' }, 
      {'application/x-javascript' => 'access plus 12 hours' }, 
      {'text/css' => 'access plus 12 hours' }, 
      {'image/gif' => 'access plus 12 hours' }, 
      {'image/jpeg' => 'access plus 12 hours' }, 
      {'application/x-shockwave-flash' => 'access plus 12 hours' }, 
     ], 
     }, 
    ], 

    } 

这将创建这是不完全是我想要的:

<Directory "/var/www/mysite"> 
    Options -Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    ExpiresActive On 
    ExpiresDefault access plus 0 seconds 
    ExpiresByType {"text/javascript"=>"access plus 12 hours"} 
    ExpiresByType {"application/x-javascript"=>"access plus 12 hours"} 
    ExpiresByType {"text/css"=>"access plus 12 hours"} 
    ExpiresByType {"image/gif"=>"access plus 12 hours"} 
    ExpiresByType {"image/jpeg"=>"access plus 12 hours"} 
    ExpiresByType {"application/x-shockwave-flash"=>"access plus 12 hours"} 
    </Directory> 

ExpiresDefault和ExpiresByType不起作用。其余的对我来说很好。

回答

1

如果你改变你的代码:

apache::vhost { 'mysite': 
    servername  => 'mysite.com', 
    vhost_name  => '1.1.1.1', 
    port   => '80', 
    docroot   => 'mydocroot', 
    directories => [ 
     { 
     path => '/var/www/mysite', 
     provider => 'directory', 
     options => ['-Indexes','FollowSymLinks'], 
     expires_active => 'On', 
     expires_default => '"access plus 0 seconds"', 
     expires_by_type => [ 
      'text/javascript "access plus 12 hours"', 
      'application/x-javascript "access plus 12 hours"', 
      'text/css "access plus 12 hours"', 
      'image/gif "access plus 12 hours"', 
      'image/jpeg "access plus 12 hours"', 
      'application/x-shockwave-flash "access plus 12 hours"', 
     ], 
     }, 
    ], 
    } 

你得到:

<Directory "/var/www/mysite"> 
    Options -Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
    ExpiresActive On 
    ExpiresDefault "access plus 0 seconds" 
    ExpiresByType text/javascript "access plus 12 hours" 
    ExpiresByType application/x-javascript "access plus 12 hours" 
    ExpiresByType text/css "access plus 12 hours" 
    ExpiresByType image/gif "access plus 12 hours" 
    ExpiresByType image/jpeg "access plus 12 hours" 
    ExpiresByType application/x-shockwave-flash "access plus 12 hours" 
    </Directory> 

我没有挖得足够深,以决定该行为是否是详细记录,是混乱的,应该是固定的,应该有更好的记录,或者是意想不到的。

如果它不是文档记载的东西,那么绝对有人应该提出一个pull请求来改进Apache模块。

+0

我认为你不想在每一行添加'ExpiresByType',你的输出将不会与'ExpiresByType ExpiresByType' – Wee

+0

一起使用。 –

+0

由于字符串类型在Puppet中的工作原理,这绝对是预期的行为,也似乎是这个问题可能的最佳答案。 –