Назад | Перейти на главную страницу

Установка переменной среды для использования nginx и Rails

Модуль 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), но у меня не будет такой же изоляции «на vHost», как у Apache, верно?

Какие здесь альтернативы?

FastCGI Param для прохождения fastcgi или Заголовок набора прокси для при прохождении прокси.

Почему бы просто не создать сценарий запуска, который устанавливает необходимые переменные среды перед вызовом nginx или rails .. и иметь по одному сценарию на каждый экземпляр?

fastcgi_params позволит вам легко устанавливать переменные среды. Вот пример добавления переменных окружения с использованием параметров fastcgi с 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;
    }