Referenzieren von Betriebssystemumgebungsvariablen in nginx.conf

8

In nginx.conf.

Nach dem Festlegen einer Variablen nach set $name value , Ich kann es wie $name ,

verweisen

Aber wenn ich eine Betriebssystemumgebungsvariable exportiere von env name_from_env , wie Ссылка sagte, und ich bin mir sicher, dass der name_from_env gültig ist definierter Formular-Nginx-Elternprozess.

Aber, meine Freunde, wie soll ich darauf verweisen? $ name_from_env oder $ {name_from_env} oder % name_from_env% hat nicht funktioniert, was ich vorher versucht habe.

    
caoxingk 16.09.2011, 02:23
quelle

2 Antworten

0

nginx verfügt nicht über die eingebaute Fähigkeit, seine Umgebungsvariablen in der aktuellen Konfiguration zu referenzieren. Die einfachste Lösung ist jedoch die perl_set -Direktive von ngx_http_perl_module , einem zusätzlichen Modul für nginx. Das offizielle nginx-Paket erstellt das Perl-Modul dynamisch , so dass Sie sicherstellen müssen, dass Sie das zusätzliche nginx-module-perl -Paket installieren ( oder konfiguriere deinen eigenen Build von nginx, falls du das tust.)

Die Konfiguration sieht so aus:

%Vor%

Siehe auch Ссылка für wie Lua zu benutzen, um dasselbe zu erreichen. Lua-Unterstützung erfordert ein Drittanbietermodul und wird nicht mit den Standardpaketen von Nginx ausgeliefert.

    
davidjb 15.07.2016 11:48
quelle
-1

Es sollte $ name_from_env sein, genau wie jede andere Variable von Nginx.

Beachten Sie, dass env nur im Hauptteil Ihrer Konfiguration verwendet werden kann, nicht in http-, Server- oder Standort-Blöcken.

Ich nehme an, dass env nicht wirklich das ist, was Sie auf jeden Fall brauchen. Wenn Sie versuchen, Variablen an Ihre Anwendung weiterzugeben, sollten Sie proxy_param oder fastcgi_param verwenden (je nachdem, wie Sie mit Ihrem Upstream sprechen):

%Vor%     
cliff.wells 27.06.2012 21:10
quelle

Tags und Links