把如果其他在Nginx的Vhostconfiguration与傀儡Nginx jfryman模块

我想自动化一个网站的nginx虚拟主机configuration,如果有条件陈述的话。 我试图用jfryman-nginx傀儡伪造模块来做,但我不能configuration文件。 我想要的configuration如下:

server { listen 8080; server_name abcqwe.com; root /data/vvv/abcqwe.com; index index.php index.html index.htm; access_log /data/vvv/abcqwe.com/logs/access.log; error_log /data/vvv/abcqwe.com/logs/error.log; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html #try_files $uri $uri/ /index.html; if (!-f $request_filename){ set $rule_0 1$rule_0; } try_files $uri $uri/ /index.html; } 

那么我如何把这个条件放在我的虚拟主机configuration中:

  if (!-f $request_filename){ set $rule_4 1$rule_4; } 

有可能吗? 我曾尝试与location_cfg_prepend但没有帮助..

    我和jfryman-nginx的v0.0.9有同样的问题。

    在github最新的源代码模板中 ,它看起来像; 如果您使用location_custom_cfg_{pre,ap}pend则不应该添加。

    但在v0.0.9中,最新的捆绑木偶伪造版本 ,模板添加了; 即使该行只有一个}导致nginx失败。

    解决方案:

    1. 使用location_**custom**_cfg_{pre,ap}pend选项

    2. A或B:

      A.编辑出来; 在模板中

      B.从github上下载最新版本的源代码:

    sudo rm -rf / etc / puppet / modules / nginx && cd / etc / puppet / modules && sudo git clone https://github.com/jfryman/puppet-nginx nginx

      nginx::resource::location { 'sub.dom.com_root': ensure => present, vhost => 'sub.dom.com', location => '~ \.php$', fastcgi => 'unix:/var/run/php5-fpm.sock', www_root => '/var/www/sub.dom.com', location_custom_cfg_append => { 'if (-f $request_filename)' => '{ break; }', 'if (-d $request_filename)' => '{ break; }', 'if ($request_filename !~ (js|css|jpg|png|gif|robots\.txt|index\.php.*) )' => '{ rewrite ^/(.*) /index.php?$1 last; }', }, } 

    请尝试在nginx中使用Luamodulee ,具有很多配置的Lua模块。

    Lua语法中使用非常简单。

    请阅读

    您现在可以使用raw_prependraw_append参数。

    有关更多详细信息,请参阅location.pp页面。