我了解到您可以测试配置而不必通过以下方式部署它:
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;