Anlamadım. Apache ters proxy arkasında bir Rails uygulaması çalıştırmayı denedim. Ben 8080.Apache ters proxy arkasında bir alt dizindeki raylar
bundle exec unicorn -c config/unicorn.rb -E production -p 8080
Apache Sanal Ana
ProxyPass /foo/ http://localhost:8080/
ProxyPassReverse /foo/ http://localhost:8080/
Bu temelde çalışır bağlantı noktası üzerinde Unicorn kullanıyorum. Rails uygulamasında http://domain.tld/foo/ adresine bir istek geldi. Aşağıda ApplicationController.before_filter
yılında aşağıdakileri kullanarak bir kimlik doğrulama mekanizması yönlendirme olan:
redirect_to controller: 'sessions', action: 'index'
, ben http://domain.tld/sessions/ yönlendirilecektir. Şimdi, tüm yönlendirmelerden açıkça bahsetmeden, Rails'i global olarak http://domain.tld/foo/sessions/'a yönlendirmek için yapılandırmak istiyorum.
config.relative_url_root = '/foo'
config.action_controller.relative_url_root = '/foo'
Ve bununla Unicorn başlayan:
Ben config/ortamlarında/production.rb bu kullanarak çalıştı
RAILS_RELATIVE_URL_ROOT='/foo' bundle exec unicorn -c config/unicorn.rb -E production -p 8080
Maalesef bu işe yaramaz. Davranışı hiç değiştirmez. Yönlendirmeden önce görmek için hata ayıklama çıktısı ekledim, neler oluyor.
puts Rails.application.config.relative_url_root
puts ENV['RAILS_RELATIVE_URL_ROOT']
puts url_for controller: 'sessions', action: 'index'
Bu yazdırır: Raylar dikkate yapılandırmayı almaz neden
/foo
/foo
http://domain.tld/sessions
herkes bana söyleyebilir misiniz?