为什么我无法通过 Puppet Apache 模块向我的 Vhost 添加别名?

为什么我无法通过 Puppet Apache 模块向我的 Vhost 添加别名?

以下是我的清单的片段:

  apache::vhost { 'default-http':
    port     => 80,
    serveraliases => ['example.test.com', 'example2.test.com',],
    docroot  => '/var/www/html',
    rewrites => [
      {
        comment      => 'Bounce to https',
        rewrite_cond => ['"%{SERVER_PROTOCOL}"  "!^HTTP$"'],
        rewrite_rule => ['"^/?(.*)" "https://%{HTTP_HOST}/$1" [R=permanent,L]'],
      }
    ],
  }

正如您在以下配置中看到的,别名无处可寻:

# Vhost template in module puppetlabs-apache
# Managed by Puppet
# ************************************

<VirtualHost *:80>
  ServerName default-http

  ## Vhost docroot
  DocumentRoot "/var/www/html"

  ## Directories, there should at least be a declaration for /var/www/html

  <Directory "/var/www/html">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Require all granted
  </Directory>

  ## Logging
  ErrorLog "/var/log/httpd/default-http_error.log"
  ServerSignature Off
  CustomLog "/var/log/httpd/default-http_access.log" combined
  ## Rewrite rules
  RewriteEngine On

  #Bounce to https
  RewriteCond "%{SERVER_PROTOCOL}"  "!^HTTP$"
  RewriteRule "^/?(.*)" "https://%{HTTP_HOST}/$1" [R=permanent,L]

我猜想我的 serveraliases 行有问题,因为除了该行之外的配置中都显示了其他内容。不幸的是,我没有在日志中看到任何错误来指导我。

我究竟做错了什么?

答案1

为了数组,Puppet 语言风格指南中建议……

为了提高数组和哈希的可读性,将元素分成不同的行几乎总是有益的。

仅当使用单行代码可以提高结构的整体可读性时才使用,例如当代码非常短时。拆分数组和哈希时,它们应该具有:

  • 其线上的每个元素,
  • 每个新元素行缩进一级,
  • 第一行和最后一行仅用于该数据类型的语法。

来自的示例配置虚拟主机看起来像这样:

apache::vhost { 'aliases.example.com':
  serveraliases => [
    'aliases.example.org',
    'aliases.example.net',
  ],
  port          => '80',
  docroot       => '/var/www/aliases',
}

[ '您的配置中唯一不同的是和之间没有空格', ],。使用格式化数组的最佳实践可以自动避免这种情况。

相关内容