#ruby-on-rails #ruby #ngrok
#ruby-on-rails #ruby #ngrok
Вопрос:
Я работаю над тем, чтобы webhook приземлился в приложении rails. Мой rails-сервер запущен, и я уже подключился к ngrok и внешнему приложению. Но эти ошибки указывают на то, что мое приложение не запускается.
localhost:3000
запускается, и я могу получить webhooks для ngrok. В чем дело?
Соединение с http://9xxxxxx5.ngrok.ввод-вывод был успешно туннелирован к вашему клиенту ngrok, но клиенту не удалось установить соединение с локальным адресом localhost: 3000.
Убедитесь, что веб-служба запущена на localhost: 3000 и что это действительный адрес.
Обнаруженная ошибка была: набрать tcp [:: 1]: 3000: getsockopt: соединение отклонено
После того, как я вижу localhost: 3000, запускается приложение rails. Почему не удалось подключиться….
Вот результат ps aux | grep ruby
.
user 63542 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/assets
user 63541 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/channels
user 63540 0.0 0.0 4298800 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/test/mailers/previews
user 63539 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.04 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/uploaders
user 63538 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/services
user 63537 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/models
user 63536 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/mailers
user 63535 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/jobs
user 63534 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/helpers
user 63533 0.0 0.0 4306992 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/app/controllers
user 63532 0.0 0.0 4298800 40 s000 S 7:00PM 0:00.05 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/db
user 63531 0.0 0.0 4298800 40 s000 S 7:00PM 0:00.06 /Users/xxxxxx/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/rb-fsevent-0.10.3/bin/fsevent_watch --format=otnetstring --latency 0.1 /Users/xxxxxx/Workspace/app/config/locales
user 64927 0.0 0.0 4258736 192 s002 R 7:42PM 0:00.00 grep ruby
Обновить
Я пытался уничтожить последнюю. Но я не мог, потому что номер процесса каждый раз является случайным, как показано ниже:
И я все еще не мог подключить ngrok….
Комментарии:
1. Можете ли вы опубликовать полные ошибки обратного отслеживания с вашего сервера rails в вашем локальном терминале?
2. Спасибо за ваш комментарий. Но я не смог найти никаких ошибок на сервере rails, потому что эта ошибка может возникнуть из-за того, что ngrok не подключен к rails.
3. что вы имеете в виду под
click localhost:3000
?4. введите это в терминале и вставьте свой вывод в свой вопрос.
ps aux | grep ruby
5. @lacostenycoder Большое спасибо. Я добавил результат в вопросы.
Ответ №1:
Спасибо @lascostenycoder
Я так удивлен, что смог исправить это после sudo vi /etc/hosts
. Я редактировал для других проектов с помощью MAMP. Поэтому я не мог этого сделать.
Спасибо за вашу помощь 🙂
Комментарии:
1. На самом деле я думал об этом вчера, но не уверен, почему я не предложил это проверить. Я обновил свой ответ, поскольку я должен был упомянуть и это.
Ответ №2:
Вам нужно добавить порт в вашу команду ngrok, локальная разработка rails по умолчанию равна 3000
ngrok http 3000
Затем вы должны иметь возможность ввести свой адрес ngrok в вашем браузере
http://xxxxxx.ngrok.io/
Единственный способ, которым я могу воспроизвести вашу ошибку, — это остановить мой rails-сервер, затем, когда я пытаюсь открыть URL ngrok, я получаю вашу ошибку. Таким образом, это означает, что либо ваш сервер НЕ запущен, либо ngrok не может подключиться к нему.
ОБНОВЛЕНИЕ 2
Убедитесь, что в /etc/hosts
вас ничего не происходит, что могло бы вызвать проблему.
Обновить
Убедитесь, что у вас не запущены какие-либо мошеннические процессы ruby. На основе вашего обновленного комментария запустите это, чтобы уничтожить их всех
ps aux | grep ruby | awk '{print $2}' | xargs kill -9
Или попробуйте посмотреть, является ли проблема spring:
spring status
spring stop
Затем проверьте и убедитесь, что все было уничтожено, затем начните заново с шага 1.
ps aux | grep ruby
Это может быть что-то специфичное для вашего приложения / конфигурации? Поэтому попробуйте отключить все ваши работающие серверы rails, если вы не уверены, перезагрузите свой компьютер. Затем перейдите в новую папку проекта, просто добавьте новое приложение rails и, как только оно будет запущено, попробуйте ngrok еще раз и посмотрите, работает ли оно. Также убедитесь, что вы используете http и https в вашей команде ngrok.
Комментарии:
1. Спасибо за ваш комментарий. Я запускаю
ngrok http 3000
, а затем я проверил xxxx.ngrok.io отображается в терминале. Но это не сработало бы.2. @k10a ваш сервер rails запущен в другом терминале перед запуском
ngrok
? И, конечно,xxxx
это подделка, вы будете получать новый случайный префикс хэша при каждом запуске новогоngrok
3. Да, я запустил rails server до ngrok и заменил с xxxx на собственный URL ngrok.
4. @k10a как вы запускаете rails server?
5. Спасибо за вашу помощь. В termnial,
$ rails s
как обычно.