Zaczynam projekt, który używa zmiennych środowiskowych do ustawienia połączenia z bazą danych i kilku innych rzeczy. (Nie chcieli używać plików konfiguracyjnych, ponieważ ludzie są nieostrożni i nadpisują je).
W każdym razie używam nginx i chociaż obsługuje env - wydaje się, że nie obsługuje go wystarczająco dobrze . Nie można ustawić wartości env dla poszczególnych bloków . Innymi słowy, to nie zadziała:
server {
listen 80;
server_name domain;
env FOO = "bar";
}
Musisz to zrobić:
env FOO = "bar";
http {
server {
listen 80;
server_name domain;
}
}
Co oznacza, że nie mogę mieć wartości specyficznych dla vhosta. Więc muszę utworzyć całą konfigurację vhost dla każdej strony i aktywować tylko tę, którą chcę w tej chwili, aby wartość była ustawiona poprawnie.
Czy jest jakiś sposób na obejście tego?
nginx
web-server
virtualhost
environment-variables
Xeoncross
źródło
źródło
fastcgi_pass
do przekazania żądania do ruby / php.Odpowiedzi:
Okazuje się, że jeśli używasz fastcgi, możesz to obejść, przekazując wartości z fastcgi_param .
źródło
server_name
dynamiczne? Ponieważ jest to wirtualny host działający w systemie OS X, host nginx ma inny adres IP, więc nie można go rozwiązać.