
O módulo mod_env do Apache oferece uma maneira prática de definir variáveis de ambiente em arquivos de configuração, como:
<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
No entanto, no nginx não consegui encontrar nada que servisse ao mesmo propósito. Qual é a alternativa aqui? Pensei em definir variáveis de ambiente em arquivos .profile (estou usando Ubuntu 10.04), mas isso não teria o mesmo isolamento "por vHost" que tenho com o Apache, certo?
Quais são as alternativas aqui?
Responder1
Parâmetro FastCGIpara passagem rápida de cgi ouCabeçalho do conjunto de proxypara quando o proxy passa.
Responder2
Por que não apenas criar um script de inicialização que defina as variáveis de ambiente necessárias antes de chamar nginx ou rails .. e ter um scipt por instância?
Responder3
fastcgi_params permitirá que você defina variáveis de ambiente facilmente. Aqui está um exemplo de adição de variáveis de ambiente usando parâmetros fastcgi com 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;
}