ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RoR и nginx


  • To: nginx-ru@xxxxxxxxx
  • Subject: RoR и nginx
  • From: "Alex Kitschkiruk" <rusnginx@xxxxxxxxx>
  • Date: Mon, 15 Jan 2007 00:08:49 +0100
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type; b=jDPsnkT4SKDnUFDT+VjNQVSuIQANrkO3xEEAel1zZjO3MJNchdYF8gWvVOFN9hQfa9hrDA5NYoGinQ6BYqCKifmhMXiWGthFHdhJVZdO66q7hLyjnjbt20vDssxeNw8iaorT8xn1Tkxs8NIR8mYuZoIAsp4+IJSilr1APnNQWBw=

Люди!
хелп...
уже два дня мучаюсь пытабсь соеденить nginx и RubyOnRails через FastCGI.
использую вариант, как с lighttpd, только запускаю nginx. Тут в рассылке где-то пробегала конфигурация, ее я тоже смотрел.

Так вот, использую что сокеты, что порты все одно - с nginx не запускается. А точнее всегда выдает 404 ошибку. На том же сокете lighttpd выдает все нормально.
Такое ощущение, что nginx неправильно передает пути, или DOCUMENT_ROOT не передает.

Вот что выдает руби:
ActionController::RoutingError (Recognition failed for "/index.html" req.path=/index.html):
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.rb:523:in `recognition_failed'
    /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.rb:513:in `recognize!'
    /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in `dispatch'
    /usr/local/lib/ruby/gems/1.8/gems/rails- 1.1.6/lib/fcgi_handler.rb:150:in `process_request'
    /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:54:in `process!'
    /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:612:in `each_cgi'
    /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each'
    /usr/local/lib/ruby/site_ruby/1.8/fcgi.rb:609:in `each_cgi'
    /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:53:in `process!'
    /usr/local/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:23:in `process!'
    /srv/rb/public/dispatch.fcgi:27

Rendering /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/templates/rescues/layout.rhtml (404 Page Not Found)


А вот конфиг нгинкса:

server {
        listen  80;
        server_name rb.com;
        root /srv/rb/public/;
        location / {
            include  conf/fastcgi.conf;
            fastcgi_pass unix:/srv/rb/tmp/sockets/fcgi.socket-0;
            fastcgi_index  index.html;
            root /srv/rb/public;
            access_log  /logs/rb.log;
            fastcgi_param  SCRIPT_FILENAME /srv/rb/public$fastcgi_script_name;
            fastcgi_param  PATH_TRANSLATED /srv/rb/public$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME $fastcgi_script_name;
            fastcgi_param  REDIRECT_STATUS 200;
            fastcgi_param  DOCUMENT_ROOT   /srv/rb/public;
            fastcgi_pass_header Authorization;
            fastcgi_intercept_errors off;

            fastcgi_param PATH_INFO             $fastcgi_script_name;
            fastcgi_param REQUEST_METHOD        $request_method;
            fastcgi_param QUERY_STRING          $query_string;
            fastcgi_param CONTENT_TYPE          $content_type;
            fastcgi_param CONTENT_LENGTH        $content_length;
            fastcgi_param SERVER_PORT           $server_port;
            fastcgi_param SERVER_PROTOCOL       $server_protocol;
            fastcgi_param SERVER_NAME           $server_name;

            fastcgi_param REQUEST_URI           $request_uri;
            fastcgi_param DOCUMENT_URI          $document_uri;
            fastcgi_param DOCUMENT_ROOT         $document_root;
            fastcgi_param SERVER_ADDR           $server_addr;
            fastcgi_param REMOTE_USER           $remote_user;
            fastcgi_param REMOTE_ADDR           $remote_addr;
            fastcgi_param REMOTE_PORT           $remote_port;
            fastcgi_param SERVER_SOFTWARE       "nginx";
            fastcgi_param GATEWAY_INTERFACE     "CGI/1.1";
        }
}


У lighttpd в конфиге тоже все просто:

server.bind = "xx.xx.xx.xx"
server.port = 8899

server.modules           = ( "mod_rewrite", "mod_accesslog", "mod_fastcgi", "mod_compress", "mod_expire" )

server.error-handler-404 = "/dispatch.fcgi"
server.document-root     = CWD + "/public/"

server.errorlog          = CWD + "/log/lighttpd.error.log"
accesslog.filename       = CWD + "/log/lighttpd.access.log"

url.rewrite              = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" )

compress.filetype        = ( "text/plain", "text/html", "text/css", "text/_javascript_" )
compress.cache-dir       = CWD + "/tmp/cache"

fastcgi.server      = ( ".fcgi" => ( "localhost" => (
  "min-procs"       => 1,
  "max-procs"       => 1,
  "socket"          => CWD + "/tmp/sockets/fcgi.socket",
  "bin-path"        => CWD + "/public/dispatch.fcgi",
  "bin-environment" => ( "RAILS_ENV" => "development" )
) ) )



 




Copyright © Lexa Software, 1996-2009.