
Модуль Apache mod_env предлагает удобный способ настройки переменных среды в файлах конфигурации, например:
<VirtualHost *:80>
ServerName xyz.com
DocumentRoot /var/www/rails_app/public
PassengerAppRoot /var/www/rails_app
SetEnv MY_VARIABLE contents
</VirtualHost>
http://httpd.apache.org/docs/2.0/mod/mod_env.html#setenv
Однако в nginx я не смог найти ничего, что служило бы той же цели. Какая здесь альтернатива? Я думал о настройке переменных окружения в файлах .profile (я использую Ubuntu 10.04), но это не будет иметь ту же изоляцию "per vHost", что у меня есть с Apache, верно?
Какие здесь есть альтернативы?
решение1
Параметры FastCGIдля fastcgi прохождения илиЗаголовок набора проксидля случаев передачи прокси.
решение2
Почему бы просто не создать скрипт запуска, который устанавливает необходимые переменные среды перед вызовом nginx или rails... и иметь по одному скрипту на экземпляр?
решение3
fastcgi_params позволит вам легко устанавливать переменные окружения. Вот пример добавления переменных окружения с помощью fastcgi params с php-fpm:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param MY_VARIABLE contents;
include fastcgi_params;
}