我想为具有if条件语句的网站自动化nginx vhost配置。我试图用jfryman-nginx木偶伪造模块来做这件事,但我无法配置文件。我想要的配置如下:
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;
}
那么我如何在我的vhost配置中放入这个if条件:
if (!-f $request_filename){
set $rule_4 1$rule_4;
}
虽然可以这样做吗?我试过location_cfg_prepend
,但没有帮助..
答案 0 :(得分:3)
我和jfryman-nginx的v0.0.9有同样的问题。
In the latest source templates on github,如果您使用;
,则似乎不应添加location_custom_cfg_{pre,ap}pend
。
但in v0.0.9, the latest bundled puppet forge release,即使该行只有;
导致}
失败,模板也会添加nginx
。
使用location_**custom**_cfg_{pre,ap}pend
选项
A或B:
一个。编辑模板中的;
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; }',
},
}
答案 1 :(得分:0)
答案 2 :(得分:0)
现在,您可以使用 from requests.auth import HTTPBasicAuth
requests.post(url, auth=HTTPBasicAuth(username, password))
和raw_prepend
参数。
有关详细信息,请参阅location.pp页面。