Вкратце вопрос состоит в том, как настроить Nginx для обслуживания статических страниц сайта и как и где установлен этот сервер Nginx (он должен быть на том же сервере, где установлен Ruby on Rails Server) и будет ли он работать за Обратный прокси Nginx.

Первоначальная проблема заключалась в том, что приложение rails не отправляло CSS-файлы и не отображало сайт в производственной среде. В среде разработки сайт отображается правильно.

В настоящее время у меня есть обратный прокси-сервер Nginx, который действует как обратный прокси-сервер для веб-сайтов с несколькими доменами (каждый домен веб-сайта работает на собственном сервере с отдельным IP-адресом в локальной сети), используя один IP-адрес в глобальной сети.

Ruby версия 2.5 Rails версия 5.2.2

Я только что начал работать в Ruby on Rails и настроил сайт (example.com), и он имеет пять страниц, четыре из пяти страниц являются статическими (добро пожаловать, справка, контактные новости), одна страница является динамической и извлекает данные из базы данных.

Мне пришлось запустить приведенный ниже код, а затем включить общедоступный файловый сервер в true в RailsApp/config/environment /productions.rb.

$ bundle exec rake assets: прекомпиляция

RailsApp/ конфигурации / среда / productions.rb

config.public_file_server.enabled = true

В настоящее время есть WAN IP -> обратный прокси-сервер Nginx (сервер 1) -> сервер приложений Ruby on Rails (сервер 2).

Какой метод размещения статических страниц рекомендуется использовать в приложении Ruby on Rails. То есть требуется ли обратному прокси-серверу Nginx (Сервер 1) доступ к файлам локальной сети через приложение Rails (Сервер 2) для доступа к страницам статического сайта, или же на сервере 2 устанавливается другой веб-сервер Nginx, а затем настраивается этот новый Nginx для раздача статических страниц запроса?

1 ответ1

0

Согласно руководству Rails

config.public_file_server.enabled настраивает Rails для обслуживания статических файлов из общего каталога. Этот параметр по умолчанию имеет значение true, но в производственной среде он имеет значение false, поскольку серверное программное обеспечение (например, NGINX или Apache), используемое для запуска приложения, должно вместо этого обслуживать статические файлы. Если вы запускаете или тестируете свое приложение в рабочем режиме с помощью WEBrick (не рекомендуется использовать WEBrick в рабочем режиме), установите для этого параметра значение true. В противном случае вы не сможете использовать кэширование страниц и запрашивать файлы, которые существуют в общедоступном каталоге.

и по поводу вашего вопроса - должен ли единственный сервер nginx (обратный прокси) обслуживать рельсы статическими файлами? ответ: верно (это предпочтительный вариант)

Может быть, этот пример конфигурации может помочь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .