Comment configurer des pages Web statiques Ruby on Rails derrière le proxy inverse de Nginx

0

Résumé de la question est quelle est la méthode pour configurer Nginx afin de servir des pages statiques pour le site, et comment et où ce serveur Nginx est installé (est-il supposé se trouver sur le même serveur où le serveur Ruby on Rails est installé) Proxy inverse Nginx.

Le problème original était que l'application RPM n'envoyait pas de fichiers css et ne rendait pas le site pendant l'environnement de production. Pendant l’environnement de développement, le rendu du site est correct.

J'ai actuellement un serveur proxy inverse Nginx, qui agit en tant que proxy inverse pour plusieurs sites Web de domaine (chaque domaine de site Web s'exécutant sur son propre serveur avec une adresse IP de réseau local distincte) exécutant l'une des adresses IP de réseau étendu.

Ruby version 2.5 Rails version 5.2.2

Ruby on Rails vient de commencer et a créé un site (example.com) de cinq pages. Quatre des cinq pages sont statiques (accueil, aide, informations de contact), une page est dynamique et extrait les données de la base de données.

Je devais exécuter ci-dessous le code, puis activer le serveur de fichiers public à true dans le fichier RailsApp / config / environment / productions.rb.

$ bundle exec rake assets: précompiler

RailsApp / config / environnements / productions.rb

config.public_file_server.enabled = true

WAN IP -> Nginx Reverse Proxy (Serveur 1) -> Ruby on Rails App Server (Serveur 2).

Quelle est la méthode recommandée pour héberger des pages statiques trouvées dans l'application Ruby on Rails. Autrement dit, le proxy inverse Nginx (serveur 1) a-t-il besoin d'un accès au fichier LAN local de l'application Rails (serveur 2) pour accéder aux pages du site statique ou un autre serveur Web Nginx est-il installé sur le serveur 2, puis configure-t-il ce nouveau serveur Nginx? servir des demandes de pages statiques?

hs333dev
la source

Réponses:

0

Selon le guide Rails

config.public_file_server.enabled configure Rails pour servir les fichiers statiques à partir du répertoire public. La valeur par défaut de cette option est true, mais dans l'environnement de production, elle est définie sur false car le logiciel serveur (par exemple, NGINX ou Apache) utilisé pour exécuter l'application doit plutôt servir les fichiers statiques. Si vous exécutez ou testez votre application en mode production à l'aide de WEBrick (il est déconseillé d'utiliser WEBrick en production), définissez l'option sur true. Sinon, vous ne pourrez pas utiliser la mise en cache des pages et demander des fichiers existant dans le répertoire public.

et à propos de votre question - le seul serveur nginx (proxy inverse) doit-il servir les fichiers statiques rails? réponse: vrai (c'est une option préférable)

Peut-être que cet exemple de configuration pourrait aider.

Flex Chan
la source