Невозможно настроить passenger и nginx для развертывания приложения rails
Я развертываю приложение rails на VPS с CentOS. Я установил пассажира с gem install passenger. А для установки nginx я использовал rvmsudo passenger-install-nginx-module.
В конфигурационном файле nginx я установил:
server {
listen 80;
server_name my-ip-address;
location / {
root /home/deploy/repos/application-name/public;
passenger_enabled on;
rails_env production;
}
...
}
Когда я выполняю sudo service nginx status, я получаю следующее:
nginx (pid 21015 21014) is running...
Который показывает, что nginx работает.
Но я получаю This webpage is not available в браузере.
Даже я получаю тот же результат, когда ставлю на сервер rails в режиме разработки с rails s и пытаюсь проверить в браузере с my-ip-address:3000
Может ли кто-нибудь помочь с тем, что может быть проблемой?
Когда я выполняю команду passenger-config restart-app результат:
Phusion Passenger is currently not serving any applications
Мне нужно предложение о том, является ли это проблемой с nginx или пассажиром?
Еще один вопрос -
Если мой пассажир установлен неправильно, но nginx установлен правильно, смогу ли я увидеть "добро пожаловать на страницу nginx"?
Обновление:
Я попробовал запустить passenger start -p 3000 -d -e production, которым пассажир служит в фон. Теперь, если я делаю passenger-status, я получаю два примера пассажира, из которых один говорит Phusion Passenger is currently not serving any applications , а другой показывает:
Version : 5.0.21
Date : 2016-01-16 10:42:42 +0530
Instance: feOajf7V (nginx/1.8.0 Phusion_Passenger/5.0.21)
----------- General information -----------
Max pool size : 6
App groups : 1
Processes : 1
Requests in top-level queue : 0
----------- Application groups -----------
/home/deploy/repos/application-name/public (production):
App root: /home/deploy/repos/application-name
Requests in queue: 0
* PID: 22003 Sessions: 0 Processed: 0 Uptime: 4m 17s
CPU: 0% Memory : 36M Last used: 4m 17s ago
И если я выполняю passenger-config restart-app, то получаю результат в виде:
Please select the application to restart.
‣ /home/deploy/repos/application-name/public (production)
Cancel
Означает ли это, что пассажир работает правильно? Но я вижу webpage not available в браузере.
2 ответов:
Я думаю, что вы не запустили
passengerв каталоге вашего проекта. В корневом каталоге типа вашего проекта:passenger start -p <port>Где
<port>- порт, на котором вы хотите запустить приложение (например, 8000).Обновить
Согласно обновлениям в вашем вопросе и комментариям ниже, проблема, похоже, не находится в конфигурации nginx или passenger. Поскольку вы пытаетесь получить доступ к вашему серверу не локально, а с реальным ip вашего VPS, есть вероятность, что порты, о которых идет речь, не открыты. Вы можете проверить, так ли это здесь.
Я не гуру, но в моей (рабочей ;) ) установке у меня есть:
keepalive_timeout 10; passenger_enabled on; root /var/www/org/current/public;В блоке сервера, а не в блоке расположения. Надеюсь, это поможет.
И быстрый просмотр документации говорит мне то же самое: https://www.phusionpassenger.com/library/deploy/nginx/deploy/ruby/
Я не знаю, исправит ли это для вас, так как работа nginx и passenger, насколько я помню, немного неудобна, и я использую Chef, но это должно помочь.
Comments