2015-06-02 5 views
0

У меня есть скрипт Ruby, называемый server.rb, который я открываю, используя spawn-fcgi -a 127.0.0.1 -p 9001 /bin/ruby server.rb.Ruby fcgi с spawn-fcgi закрывается при запросе страницы

Запуск sudo netstat -lnptu | grep :9001 говорит мне, что прослушивает ruby.

Я также установить Nginx, чтобы передать .rb файлы 127.0.0.1:9001

Но однажды я просить .RB файл:

  1. ruby от netstat пропадает
  2. Nginx возвращает 502 ошибка (плохой шлюз)
  3. Это печатается на консоль: 2015/06/02 14:47:37 [error] 1852#0: *30 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /ruby/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "localhost", referrer: "http://localhost/"

server.rb

require "rubygems" 
require "fcgi" 

loop FCGI.each do |request| 
    File.write("test.txt", "Loading file #{__FILE__}!") 
    request.out.print "Content-Type: text/plain\\n\\nHello from #{__FILE__}" 
    request.finish 
end 

ответ

0

проблема в:

\\n\\n 

вы спасаясь обратную косую черту и эффективно нет перевода строки в выводе. что происходит в том, что клиент получает всю строку и рассматривает его в качестве заголовка и после этого закрывает соединение

Заменить:

request.out.print "Content-Type: text/plain\n\nHello from #{__FILE__}" 
Смежные вопросы