У меня есть приложение Rails, которое я запускаю на своем сервере. Когда я перехожу на удаленный рабочий стол и пытаюсь загрузить приложение, серверу требуется 3-4 минуты, чтобы ответить простой HTML-страницей. Однако, когда я загружаю страницу локально на сервере, она появляется буквально через секунду. Я попытался проверить связь с сервером со своего удаленного рабочего стола, и проверка прошла успешно за разумное время.
Кажется, все это началось после того, как я установил базовый клиент Oracle и SQLPLUS. Стоит ли подозревать Oracle? Кто-нибудь испытывал что-нибудь подобное?
ruby-on-rails
oracle
sqlplus
webrick
Проф. Фалькен
источник
источник
Ответы:
То же самое здесь (даже год спустя). В Linux вам необходимо сделать следующее:
Найдите файл /usr/lib/ruby/1.9.1/webrick/config.rb и отредактируйте его.
Заменить строку
с участием
Перезапустите вебрик, и он заработает как шарм :)
источник
Была такая же проблема. Для меня этот пост был решением. Если вы используете Ubuntu, остановите (или удалите)
avahi-daemon
.service avahi-daemon stop
останавливает демон.Уэбрик теперь чувствует себя очень быстрым.
У проблемы есть старый отчет в Rails Lighthouse , однако с тех пор Ruby-on-Rails переместили свои тикеты на github ; Прискорбно, что эта старая проблема все еще сохраняется.
Однако имейте в виду, что если вы действительно используете
avahi-daemon
для чего-то, например, для поиска принтеров и сканеров в своей сети, это больше не будет работать.источник
Просто была такая же проблема. В
помогло мне тоже. На всякий случай, если вы используете Ruby под rvm, вот путь, по которому нужно идти:
источник
"Тонкий" теперь отличный вариант для работы как локально
и на Heroku:На Heroku: https://devcenter.heroku.com/articles/rails3#webserverСайт: http://code.macournoyer.com/thin/
Вы можете использовать его локально, поместив в свой Gemfile:
... а затем запустите пакет и запустите свой сервер с помощью
thin start
илиrails s
.Обновление на Heroku
Тонкий сейчас считается плохим выбором для Heroku. Больше информации здесь:
https://blog.heroku.com/archives/2013/4/3/routing_and_web_performance_on_heroku_a_faq
Их рекомендация:
источник
gem install thin
. См. Sinatrarb.com/intro.html. Рекомендуется также запустить gem install thin, который Sinatra подхватит, если он доступен. РЕДАКТИРОВАТЬ: радикальные улучшения производительности. От 1,3 до 0,05 с.У меня была смутно похожая проблема, которая проявлялась при доступе к серверу WEBrick через VPN. Запросы занимали много времени, в большинстве случаев ничего не происходило по сети. Поскольку ни один,
mongrel
ниthin
геммы не работали с Ruby1.9 в Windows, и я никак не мог заставить себя компилировать материал из исходников, мне нужно было придерживаться WEBrick.Исправление заключалось в том, чтобы установить для параметра конфигурации
DoNotReverseLookup
значениеtrue
при создании сервера WEBrick:источник
Вы можете использовать
Apache
или установитьThin
. В вашем Gemfile:gem 'thin'
Также вы можете проверить список веб-серверов для рельсов .
источник
Пытался сделать это с помощью webrick на 1.8.7 и не смог найти конфигурацию для изменения. Однако вы можете использовать чит, чтобы добавить в файл hosts сервера, на котором запущен Webrick, IP-адрес, который он пытается отменить.
источник
Я часто сталкивался с 10-секундными задержками с Sinatra. Этот фрагмент решил эту проблему для меня.
Добавьте это в начало
app.rb
файлаclass Rack::Handler::WEBrick class << self alias_method :run_original, :run end def self.run(app, options={}) options[:DoNotReverseLookup] = true run_original(app, options) end end
См. Источник
источник
Это старая ветка вопросов и ответов, которая помогла мне решить
:DoNotReverseLookup
проблему на локальной виртуальной машине разработки, и мне хотелось добавить дополнительную информацию. Эта веб-страница объясняет ошибку регрессии в ядре Ruby, которая приводит к появлению этой проблемы у некоторых; акцент мой; Короче говоря, есть запрос на извлечение GitHub для исправления ядра Ruby, и, надеюсь, он будет одобрен и объединен в скором выпуске Ruby:С этим открытием связан запрос на перенос на GitHub от автора, предлагающий, как исправить проблему в исходном коде Ruby WEBrick: Исправить ошибку регрессии в реализации параметра конфигурации WEBrick's: DoNotReverseLookup # 731
Решение, изложенное в запросе, состоит в том, чтобы заменить строку 181
lib/webrick/server.rb
следующим образом:К этому:
Поделитесь здесь, если кто-то наткнется на эту хорошо известную цепочку вопросов / ответов и заинтересован в прогрессе в решении этой проблемы в ядре Ruby. Надеюсь, это дополнение будет объединено или основная проблема будет решена каким-либо образом в следующем выпуске Ruby; может 2.1.6?
источник
Это очень запоздалый ответ, но я потратил большую часть дня на отладку этой самой проблемы с Rails, работающим на Vagrant. Изменение обратного поиска в DNS на самом деле вообще не улучшило время запросов. Сочетание двух вещей увеличило загрузку моей страницы с ~ 20 секунд до ~ 3 секунд в режиме разработки:
Замени WEBrick на ублюдка. Мне пришлось использовать предварительную версию, иначе она не установилась:
sudo gem install mongrel --pre
Затем добавьте его в мой Gemfile для разработчиков:
group :test, :development do gem 'mongrel' end
Тогда мой сервер запустился так:
Это сократило время на несколько секунд, 5 или 6 секунд, но все равно было ужасно медленно. Это была вишенка на торте - добавьте это также в Gemfile:
group :development do gem 'rails-dev-boost', :git => 'git://github.com/thedarkone/rails-dev-boost.git' end
источник
В
DoNotReverseLookup
вебрике ruby 1.8.x опций нет. Решение - поставить:где-то в начале вашего скрипта.
Источник: WEBrick и Socket.do_not_reverse_lookup: Повесть в двух действиях
источник
В моей, вероятно, редкой ситуации, это сработало после того, как я сбросил свои iptables, у этого не было никаких побочных эффектов, потому что у меня не было никаких пользовательских правил (только Ubuntu по умолчанию разрешает все):
источник