2016-01-30 2 views
1

У меня есть приложение ruby ​​on rails, и я пытаюсь запустить его на внешнем ip моего вычислительного двигателя Google ubuntu 14.04 LTS VM.Запуск приложения rails для внешнего ip-адреса

Стараюсь rails server -e production

и выход:

=> Booting Puma 
=> Rails 4.2.4 application starting in production on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
Puma 2.14.0 starting... 
* Min threads: 0, max threads: 16 
* Environment: production 
* Listening on tcp://localhost:3000 

Я не хочу, чтобы это было в этом месте; Я хочу, чтобы он был доступен для просмотра с внешнего IP-адреса сервера.

Часть вопроса заключается в том, что я не знаю, является ли это рельсы, puma или вопрос с вычислительным компьютером Google.

Примечание: Я не вижу, действительно ли он запускается на локальном хосте: 3000, потому что виртуальная машина - это просто терминал.

+0

@JoshBrody, поэтому, если он возвращает это в командную строку, тогда он должен быть видимым извне, если не существует локального кода, предотвращающего его? – Rorschach

+0

В теории, да. Вероятно, это брандмауэр (вероятно, iptables). Там очень мало различий в локальных и prod-настройках, насколько доступно общедоступное. Чтобы убедиться, что все работает хорошо, вы можете захотеть «gem install localtunnel» и запустить его, просто чтобы убедиться, что это не какая-то странная проблема брандмауэра. –

ответ

0

(я предполагаю, что вы используете Nginx, если нет, то APT-получить установку Nginx; служба запуска Nginx) Если возможно, показать свою nginx.conf (/etc/nginx/nginx.conf) и default.conf (/etc/nginx/sites-available/default.conf) Поскольку вы используете puma (я тоже использую его), вы должны настроить файл конфига nginx и установить сервер вверх по течению, равный привязке puma.

# /etc/nginx/sites-available/default.conf 
upstream your_app { 
    server 127.0.0.0.1:9292; 
} 

server { 
    listen 80; 
    server_name your_domain; 
    root /usr/share/nginx/your_app/public; 
    # or, if you are using capistrano 
    root /usr/share/nginx/your_app/current/public; 

    location/{ 
      proxy_pass http://your_app; # equal to upstream "name" 
     ... 
    } 
    .... 
} 

# config/puma.rb 
[...] 
bind "tcp://127.0.0.1:9292" 

и выполнить сервер для PUMA

$ bundle exec puma RAILS_ENV=production & 

После выполнения данных действий, и если приложение по-прежнему не работает, выходной ваш /var/log/nginx/error.log, nginx.conf и по умолчанию .conf

+0

Если у меня нет имени домена, и в настоящее время я просто использую ip, что должно быть your_domain? – Rorschach

+0

Я также не могу найти файл config/puma.rb, я не могу найти файл с именем puma.rb. Кроме того, я только заметил, что это мой вопрос с 3 дней назад, я просто попросил его немного по-другому сегодня: http://stackoverflow.com/questions/35152369/setting-up-a-rails-app-on- пума-рельсы-Nginx-все-в-обкатка, но-Nginx-се – Rorschach

Смежные вопросы