木偶Apache过期代码

木偶Apache过期代码,apache,puppet,puppetlabs-apache,Apache,Puppet,Puppetlabs Apache,我们开始使用木偶来管理。使用apache模块(来自Puppet) 试图找出语法,使puppet生成如下内容: <Directory "/data/websites/mysite"> ExpiresActive On ExpiresDefault "access plus 0 seconds" ExpiresByType text/javascript "access plus 12 hours" ExpiresByType application/x-java

我们开始使用木偶来管理。使用apache模块(来自Puppet)

试图找出语法,使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>
这将创建一个我并不想要的:

  <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访问加0秒
ExpiresByType{“text/javascript”=>“访问加12小时”}
ExpiresByType{“应用程序/x-javascript”=>“访问加12小时”}
ExpiresByType{“text/css”=>“访问加12小时”}
ExpiresByType{“image/gif”=>“访问加12小时”}
ExpiresByType{“image/jpeg”=>“访问加12小时”}
ExpiresByType{“应用程序/x-shockwave-flash”=>“访问加12小时”}

ExpiresDefault和ExpiresByType无效。其余的对我来说很好。

如果您将代码更改为:

  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>

选项-索引跟随符号链接
不允许超限
要求所有授权
过期于
ExpiresDefault“访问加0秒”
ExpiresByType文本/javascript“访问加12小时”
ExpiresByType应用程序/x-javascript“访问加12小时”
ExpiresByType文本/css“访问加12小时”
ExpiresByType image/gif“访问加12小时”
按类型图像/jpeg“访问加12小时”过期
过期按类型应用程序/x-shockwave-flash“访问加12小时”
我没有深入研究,以决定这种行为是否如文件所述,是否令人困惑,是否应该纠正,是否应该更好地记录,或者是否出乎意料


如果它不是文档中所描述的,那么肯定有人应该提出拉取请求来改进Apache模块。

我认为您不想在每行中添加“ExpiresByType”,您的输出将无法与“ExpiresByType ExpiresByType”很好地匹配,修正。考虑到字符串类型在Puppet中的工作方式,这无疑是预期的行为,而且似乎也是这个问题的最佳答案。我确实认为必须指定
““访问加0秒”
,也就是说,那里的引用有点混乱。
  <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>