Ich starte ein Projekt, das Umgebungsvariablen verwendet, um die Datenbankverbindung und einige andere Dinge festzulegen. (Sie wollten keine Konfigurationsdateien verwenden, da die Leute nachlässig sind und sie überschreiben).
Wie auch immer, ich benutze Nginx und obwohl es env unterstützt, scheint es es nicht gut genug zu unterstützen . Sie können die env-Werte nicht blockweise pro Server festlegen . Mit anderen Worten, das wird nicht funktionieren:
server {
listen 80;
server_name domain;
env FOO = "bar";
}
Du musst das tun:
env FOO = "bar";
http {
server {
listen 80;
server_name domain;
}
}
Das bedeutet, dass ich keine vhost-spezifischen Werte haben kann. Daher muss ich für jede Site eine vollständige vhost-Konfiguration erstellen und nur die gewünschte aktivieren, damit der Wert korrekt eingestellt wird.
Gibt es eine Möglichkeit, dies zu umgehen?
nginx
web-server
virtualhost
environment-variables
Xeoncross
quelle
quelle
fastcgi_pass
, um die Anfrage an Ruby / PHP weiterzuleiten.Antworten:
Es stellt sich heraus, dass Sie dies umgehen können, wenn Sie fastcgi verwenden, indem Sie die Werte von fastcgi_param übergeben .
quelle
server_name
dynamisch zu setzen ? Da es sich um einen virtuellen Host handelt, der unter OS X ausgeführt wird, hat der Nginx-Host eine andere IP-Adresse, sodass er nicht aufgelöst wird.