无需磁盘文件即可测试 Nginx 配置

无需磁盘文件即可测试 Nginx 配置

我了解到您可以测试配置而不必通过以下方式部署它:

sudo nginx -t -c /home/ubuntu/test/example.conf

但是如果我在不可写的文件系统上怎么办?nginx 有没有办法通过命令行上的字符串来获取配置?或者,有没有其他程序或辅助脚本可以做到这一点?

答案1

如果您没有可写的根目录,则应使用可tmpfs写的 /tmp 之类的目录。许多 *nix 用户空间软件只是希望 /tmp 可写。

$ tf=$(mktemp)
$ sed -e "s/#customer_ip#/$ip/g" /etc/nginx/nginx-template.conf >$tf
$ nginx -t -c $tf
nginx: the configuration file /tmp/tmp.lZ6HpnxWqE syntax is okay

一些 shell 对此有简写:

$ zsh -c 'nginx -t -c =(sed -e "s/#customer_ip#/$ip/g" /etc/nginx/nginx-template.conf)'

include引用其他 nginx 配置片段(例如您的(临时或进程替换的)配置文件中的配置片段)的相对路径include fastcgi.conf;将不起作用。您必须用绝对路径替换它们,例如:include /etc/nginx/fastcgi.conf;

相关内容