2013-12-22 24 views
2

我想使用Nginx的配置文件中这样的规则:添加重写的位置,木偶/ Nginx的provisionner

location @rewriteapp { 
    # rewrite all to app.php 
    rewrite ^(.*)$ /app.php/$1 last; 
} 

(该规则用于Symfony框架)。 我用puphpet网站产生游民文件,我修改default.pp改变Nginx的虚拟主机 的配置我添加类似的东西来创建此重写规则:

nginx::resource::location { "${server_name}-rewrite": 
    location  => '@rewriteapp', 
    www_root  => $www_root, 
    proxy   => undef, 
    rewrite   => '^(.*)$ /app.php/$1 last;' 
} 

,但我得到了以下错误: Invalid parameter rewrite at /tmp/vagrant-puppet-1/manifests/default.pp:267 on node packer-virtualbox.vagrantup.com

有没有办法将重写规则添加到Nginx的虚拟主机配置与Puppet?

回答

4

问题是重写不是nginx puppet模块中的有效选项。

您需要为使用location_cfg_appendlocation_custom_cfg

我没有在时刻木偶设置进行测试,但我认为你需要的语法将是这样的:

nginx::resource::location { "${server_name}-rewrite": 
    location   => '@rewriteapp', 
    www_root   => $www_root, 
    proxy    => undef, 
    location_cfg_append => { 
     'rewrite' => '^(.*)$ /app.php/$1 last;' 
    } 
} 
+0

我想不通了解如何为Symfony生成一个正确的配置文件,因为Puppet会自动添加参数,这是我不想要的(比如索引)。我找到的解决方案是添加一个复制Nginx conf文件并重新启动Nginx的安装后脚本。它工作正常,对我来说更简单。 – ip512