这是我清单中的片段:
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]'], } ], }
正如你在下面的configuration中看到的,别名无处可寻:
# 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行有什么问题,因为其他所有内容都显示在configuration文件中。 不幸的是我没有看到日志中的任何错误来指导我。
我究竟做错了什么?
对于数组 ,在“木偶语言风格指南”中推荐…
为了提高数组和散列的可读性,分离线上的元素几乎总是有益的。
只有在出现结构的整体可读性更好时才使用单行,例如结构非常短。 当打破arrays和散列时,他们应该有:
- 在线上的每个元素,
- 每个新的元素行缩进一个级别,
- 第一行和最后一行仅用于该数据types的语法。
configuration虚拟主机的例子如下所示:
apache::vhost { 'aliases.example.com': serveraliases => [ 'aliases.example.org', 'aliases.example.net', ], port => '80', docroot => '/var/www/aliases', }
在你的configuration中唯一不同的是你在[ '
和', ],
之间没有空格。 这将通过使用格式化数组的最佳做法自动避免。