
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를 사용하고 있습니다) Apache에서와 동일한 "vHost별" 격리가 적용되지 않습니다. 그렇죠?
여기에 대한 대안은 무엇입니까?
답변1
FastCGI 매개변수fastcgi 통과를 위해 또는프록시 세트 헤더프록시 통과 시.
답변2
nginx 또는 Rails를 호출하기 전에 필요한 환경 변수를 설정하고 인스턴스당 하나의 스크립트를 갖는 실행 프로그램 스크립트를 만드는 것이 어떨까요?
답변3
fastcgi_params를 사용하면 환경 변수를 쉽게 설정할 수 있습니다. 다음은 php-fpm과 함께 fastcgi 매개변수를 사용하여 환경 변수를 추가하는 예입니다.
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;
}