2015-10-19 3 views
0

Для развертывания в Sinatra и Unicorn и nginx при обращении к соответствующему URL-адресу всегда будет запрашиваться метод «not_found do».Запрос всегда не найден на Sinatra и Unicorn и Nginx

(Для примера: hogehoge.com/test/)

Но, когда я проверил на месте, он будет ввести правильно «получить„/“сделать» метод.

Считаете ли вы, что где-то есть проблема с?

Скажите, пожалуйста.

[test.rb]

# coding: utf-8 
require "sinatra" 
require 'unicorn' 
class Main < Sinatra::Application 
get '/' do 
    'Success' 
end 

not_found do 
    'not_found' 
end 
end 

[config.ru]

require './test' 
run Main 

[unicorn.rb]

@dir = "/var/www/Test" 
worker_processes 2 
working_directory @dir 
preload_app true 
timeout 30 
listen "#{@dir}/tmp/test.sock", :backlog => 64 
pid "#{@dir}/tmp/pids/unicorn.pid" 
stderr_path "#{@dir}/log/unicorn.stderr.log" 
stdout_path "#{@dir}/log/unicorn.stdout.log" 

[nginx.conf]

location /test { 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_pass http://Test; 
     } 

upstream Test { 
     server unix:/var/www/Test/tmp/test.sock; 
    } 
+0

Я не использую Единорог, но быстро читаю их nt показывает, что это не обычный способ запуска процесса под ним. Не нужно «требовать» его от 'test.rb'; просто запустите его из командной строки с помощью 'unicorn -c unicorn.rb'. Также может быть проще протестировать его * без * nginx; поэтому запустите unicorn на порт вместо Unix-сокета и cURL, чтобы убедиться, что ваша конечная точка правильно решена. – mwp

ответ

0

отличается Nginx путь & Р.Б. путь

(например: hogehoge.com/test/)

[test.rb]

# coding: utf-8 
require "sinatra" 
require 'unicorn' 
class Main < Sinatra::Application 
get '/' do 
    'Success' 
end 

get '/test' do 
    'test Success' 
end 

not_found do 
    'not_found' 
end 
end 

добавить

get '/test' do 
    'test Success' 
end 
+0

Greeeeeeeeeat! Спасибо огромное! – isloop

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