AWS EC2 DNS не отвечает на Rails развертывание приложения на CentOS 6 с помощью capistrano

Я пытаюсь развернуть небольшое приложение rails с sqlite3 на экземпляре Micro AWS EC2 CentOS 6 с использованием capistrano (после того, как не добился большого успеха с nginx и пассажиром). Я слежу за этим сайтом, чтобы развернуть свое приложение

https://mattbrictson.com/build-and-deploy-a-rails-vps-part-2

, и развертывание прошло успешно, но сервер DNS экземпляра AWS отвечает с страница не работает и ERR_EMPTY_RESPONSE . Какой' Странно, когда я перехожу к своему DNS, консоль говорит Переход к данным: text / html, chromewebdata , что неверно. Я попытался найти проблему в Google, но не у многих были подобные проблемы. Трудно отследить это, когда средство развертывания было успешным, когда я запускал bundle exec cap production deploy со своего Mac (не внутри сервера AWS) и ошибок не было. Есть ли у кого-нибудь подобная проблема и знает ли способ ее устранения?

Я развернул приложение как пользователь deployer по пути / var / www / texter / и у пользователя есть доступ к этой папке внутри экземпляра AWS ec2.

Порт 80 и 8080 открыты в настройках моей группы безопасности AWS, поэтому я не думаю, что это проблема. Я говорю своему брандмауэру принять порты 8080 и 80 с помощью этой команды (поправьте меня, если я m неправильно) ниже, но это ничего не дало.

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Вот что я сделал, чтобы настроить сервер как пользователь deployer , который является стандартным для приложения rails:

sudo yum install -y git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel

# preparring rbenv, ruby, rails, nodejs
git clone git://github.com/sstephenson/rbenv.git .rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc

exec $SHELL
rbenv install -v 2.1.0
rbenv global 2.1.0
echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install rails -v 4.2.6 -V
rbenv rehash
sudo yum -y install epel-release
sudo yum install nodejs

после этого я настроил свои rails с capistrano с этим содержимым в config / deploy.rb , Capfile , /config/deploy/production.rb (все они такие же, как и ссылка на руководство, которую я разместил выше, но размещаю для справки).

внутри config / deploy.rb

set :application, "texter"
set :repo_url, "my_github_repo"
set :linked_dirs, %w(
  bin log vendor/bundle public/system
  tmp/pids tmp/cache tmp/sockets
)
set :puma_bind, "tcp://0.0.0.0:8080"

Capfile

# Load DSL and set up stages
require "capistrano/setup"

# Include default deployment tasks
require "capistrano/deploy"

# Include tasks from other gems included in your Gemfile
#
# For documentation on these, see for example:
#
#   https://github.com/capistrano/rvm
#   https://github.com/capistrano/rbenv
#   https://github.com/capistrano/chruby
#   https://github.com/capistrano/bundler
#   https://github.com/capistrano/rails
#   https://github.com/capistrano/passenger
#
# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require "capistrano/puma"
# require 'capistrano/passenger'

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

для моего содержимого в /config/deploy/production.rb :

server "PUBLIC-IP-FROM-AWS",
       :user => "deployer",
       :roles => %w(web app db)
0
задан 15 July 2016 в 07:23
1 ответ

Я решил с помощью этой страницы

Не могу получить доступ к серверу EC2 по IP-адресу

Вариант #2 решил мою проблему и надеюсь, что это поможет некоторым другим. Однако возникла другая проблема. Я заставил сервер работать по публичному IP, но puma не работает; в сообщении об установке утверждается, что все работает нормально. Я решил проблему, обойдя это и запустил bundle exec passenger start внутри /var/www/myappName/current пути от имени root и этот кикстарт запустил движок nginx для прокси-сервера localhost. Решение сервера puma - это совершенно другая проблема, которую я могу задать в другом посте.

.
0
ответ дан 5 December 2019 в 09:55

Теги

Похожие вопросы