【发布时间】:2016-03-02 08:03:06
【问题描述】:
我想为有一些 if 条件语句的网站自动化 nginx vhost 配置。我试图用jfryman-nginx puppet forge 模块来做到这一点,但我无法配置文件。我想要的配置如下:
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;
}
那么我如何将这个 if 条件放入我的虚拟主机配置中:
if (!-f $request_filename){
set $rule_4 1$rule_4;
}
有可能吗?我试过location_cfg_prepend,但这没有帮助..
【问题讨论】:
-
我不清楚您在问什么,但请尝试阅读“如果是邪恶”的文章。
-
我有同样的问题,仍在寻找解决方案。问题似乎在于 location_cfg_prepend 添加一个 ;在生成的配置文件中关闭 if } 之后。 nginx 似乎不喜欢那样。 location_cfg_append 做同样的事情。
-
@zuniga 我发布了一个答案。 github 上的最新源中有一个修复,但它不在 puppet forge 中。
-
谢谢@GuyHughes,我会尝试最新版本,但这对我来说在生产环境中还不够好,必须等到修复程序发布
-
@zuniga,github
master分支应该是生产质量的。简单的选择是使用 puppet forge 中的 v0.0.9 模块,并编辑.erb模板以在适当的地方删除分号。您可以使用 a patch 在您的生产机器上应用更改。
标签: if-statement nginx rewrite puppet conditional-statements