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