2013-12-22 29 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