Я пытаюсь обслуживать одно и то же приложение Rails с разными переменными ENV на разных портах, например,
- порт 443 с BRAND_SPACE, установленным в «default»
- порт 444 с BRAND_SPACEустановите значение «что-то другое»
Эта конкретная переменная ENV влияет на стилизацию приложения (например, мультитенант), и я хочу иметь возможность проверять одно и то же приложение с обоими стилями.
У меня есть следующая настройка с nginx + Passenger (сокращено для удобства чтения):
http {
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /usr/bin/ruby;
passenger_max_pool_size 8;
passenger_max_instances_per_app 4;
passenger_max_requests 500;
passenger_show_version_in_header off;
server {
listen 443;
server_name staging.example.de;
root /apps/staging/example/current/public;
passenger_enabled on;
rails_env staging;
passenger_env_var BRAND_SPACE default;
}
server {
listen 444;
server_name staging.example.de;
root /apps/staging/example/current/public;
passenger_enabled on;
rails_env staging;
passenger_env_var BRAND_SPACE somethingelse;
}
}
Что теперь происходит, так это то, что переменная ENV приложения, которая была впервые запрошена после перезапуска, используется для обоих приложений, т.е. еслисначала вы запрашиваете приложение на 443, тогда для приложения на 444 будет также установлена переменная ENV "default".
Использую ли я неправильную конфигурацию или это нужно решить по-другому?Если так, я был бы признателен за любую помощь в этом.