2014-11-03 2 views
1

Я разработал api с рельсами, и в локальном хосте все было в порядке. но когда мой апи находится на сервере прода, я получил ошибки с моими маршрутами ...Rails API Проблема маршрутизации (только в производстве с nginx + единорогом)

здесь сценарий:

  • моего прод сервер настроен с Nginx и единорогом
  • им с помощью субдомена и версии в моих маршрутах (api.servername/v1/ресурсов)

routes.rb файла:

constraints subdomain: 'api' do 
    scope module: 'api' do 
    namespace :v1 do 

     resources :tests, param: :name do 
     member do 
      get 'perform' 
     end 
     end 
     resources :jobs 

    end 
    end 
end 

Nginx файл конф:

server { 
    listen 80; 
    server_name *.server.com.br; 

    # Application root, as defined previously 
    root rails_public_path; 

    try_files $uri/index.html $uri @app; 

    location @app { 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    proxy_pass http://appname; 
    proxy_connect_timeout 1800; 
    proxy_read_timeout 1800; 
    }} 

когда я бегу rake routes в прод, мои маршруты, но единорог возвращает 404 страница.

ответ

2

Кажется, проблема с TLD. Это не только Единорог. Если вы настроите свой/etc/hosts с тем же доменом, вы получите ту же ошибку.

Удаление ограничения субдомена в route.rb работает должным образом.

routes.rb файл:

# constraints subdomain: 'api' do 
scope module: 'api' do 
    namespace :v1 do 
    resources :tests, param: :name do 
     member do 
     get 'perform' 
     end 
    end 
    resources :jobs 
    end 
end 
# end 
+0

Благодаря человеку! Работал и для меня. Использование пассажира + apache. –

Смежные вопросы