[RAILS] Comment créer un serveur Web sur une instance EC2 d'AWS

introduction

AWS signifie Amazon Web Servises et est un service de serveur cloud fourni par Amazon. Nous publierons ce que nous avons appris afin d'améliorer notre compréhension d'AWS.

Ce flux

"Comment créer un serveur d'applications sur une instance EC2 d'AWS" (https://qiita.com/daisuke30x/items/4292f96d817805f93d62) Il sera expliqué dans la suite de. En d'autres termes, on suppose que l'application est installée sur l'instance.

Installez Nginx sur l'instance EC2

Qu'est-ce que Nginx

Il s'agit d'un serveur Web typique.

① Installez Nginx dans votre propre application

Terminal


Connectez-vous à l'instance
% ssh -i nom de la paire de clés.pem ec2-user@<IP publique>

Installation de Nginx
[exemple]$ sudo amazon-linux-extras install nginx1
=> Is this ok [y/d/N]: y

Paramètres Nginx
[exemple]$ sudo vim /etc/nginx/conf.d/rails.conf

Appuyez sur "i" et entrez ce qui suit (deux endroits<Nom de l'application>Et un endroit<Elastic IP>Appliquez le vôtre à

:/etc/nginx/conf.d/rails.conf


upstream app_server {
  #Paramètres de liaison avec Unicorn
  server unix:/var/www/<Nom de l'application>/tmp/sockets/unicorn.sock;
}

# {}La partie entourée s'appelle un bloc. Peut définir le serveur
server {
  #Numéro de port où ce programme accepte les connexions
  listen 80;
  #Demander une URL pour accepter la connexion Accès impossible avec une URL non écrite ici
  server_name <Elastic IP>;

  #Définissez la taille maximale des fichiers téléchargés depuis le client sur 2 giga. La valeur par défaut est de 1 méga, alors gardez-la grande
  client_max_body_size 2g;

#Répertoire racine lors de la connexion
  root /var/www/<Nom de l'application>/public;

#fichier des actifs(Fichiers CSS et JavaScript, etc.)Paramètres appliqués lors de l'accès
  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;

  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://app_server;
  }

  error_page 500 502 503 504 /500.html;
}

Terminal


Après avoir entré ce qui précède, appuyez sur la touche esc et sélectionnez ":Entrez wq et enregistrez

Modifier les autorisations Nginx
[exemple]$ cd /var/lib
[Lib d'instance]$ sudo chmod -R 775 nginx  
(-R: Option pour modifier toutes les autorisations dans le répertoire)

Démarrez Nginx
[Lib d'instance]]$ cd ~
[exemple]$ sudo systemctl start nginx
[exemple]$ sudo systemctl reload nginx

② Modifier les paramètres de l'application

Cette fois, je vais vous expliquer en supposant que vous utilisez Unicorn.

config/unicorn.rb


Écoute fixe 3000=> listen "#{app_path}/tmp/sockets/unicorn.sock"
Déplacer vers le répertoire de l'application dans l'instance
[exemple]$ cd /var/www/<Nom de l'application>

[exemple<Nom de l'application>]$ git pull origin master

Terminal


Vérifiez le processus
[exemple<Nom de l'application>]$ ps aux | grep unicorn
=>Le deuxième chiffre à partir de la gauche est l'ID de processus

Arrêtez le processus
[exemple<Nom de l'application>]$ kill <unicorn_ID de processus du maître de rails>

Lancez à nouveau l'application
[exemple<Nom de l'application>]$ RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D

"RAILS_SERVE_STATIC_FILES = 1" est le rôle qui spécifie le fichier d'actif compilé à trouver.

** Entrez dans le navigateur, et si l'application est affichée, elle réussit. ** **

finalement

Nous espérons que cet article aidera les débutants à évaluer.

Recommended Posts

Comment créer un serveur Web sur une instance EC2 d'AWS
Comment créer un serveur d'applications sur une instance EC2 d'AWS
Comment installer Ruby sur une instance EC2 d'AWS
Comment publier une application à l'aide de la construction d'environnement d'instance AWS (3) EC2
Créer un environnement Laravel sur une instance AWS
Volume d'essais pour créer une application Web Java sur Windows Server 2016
Déployer laravel à l'aide de docker sur EC2 sur AWS ① (Créer une instance EC2)
Comment gérer les instances
Comment créer une méthode
Comment accéder à un conteneur s'exécutant sur AWS Fargate
Comment déployer une application kotlin (java) sur AWS Fargate
Comment déployer l'application Rails sur AWS (résumé de l'article)
Créer un serveur Minecraft sur AWS
Comment installer et utiliser Composer sur une instance ECS sur Ubuntu 16.04
Étapes pour publier une application sur Heroku
Comment créer un référentiel Maven pour 2020
[rails] Comment créer un modèle partiel
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Comment migrer une application Web créée dans un environnement Docker local vers AWS
Comment créer une base de données H2 n'importe où
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Comment afficher une page Web en Java
Comment créer des pages pour le tableau "kaminari"
Comment enregistrer des images sur Heroku dans S3 sur AWS
Comment créer une classe qui hérite des informations de classe
Comment créer un thème dans Liferay 7 / DXP
[1st] Comment créer un projet de framework Spring-MVC
Comment créer facilement un pull-down avec des rails
Rails6.0 ~ Comment créer un environnement de développement respectueux de l'environnement
[Rails] Comment créer un bouton de partage Twitter
J'ai essayé d'installer docker sur une instance EC2
Comment créer un environnement Pytorch sur Ubuntu
Créer un serveur API Web avec Spring Boot
Remarques sur la création d'extensions Burp Suite
Comment créer un certificat OLEORE (certificat SSL, auto-certificat)
Comment vérifier si une variable d'instance est définie dans une classe Ruby
Comment déployer un système réalisé avec Java (démarrage Wicket-Spring) sur le serveur du campus
Comment créer un formulaire Excel à l'aide d'un fichier modèle avec Spring MVC
[Introduction] Créer une application Ruby on Rails
3. Créez une base de données à laquelle accéder à partir du module Web
Comment créer un environnement Java en seulement 3 secondes
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Indiquez comment apprendre de Docker à AKS sur AWS
Comment créer une URL JDBC (Oracle Database, Thin)
Comment créer un projet Spring Boot dans IntelliJ
[Spring Boot] Comment créer un projet (pour les débutants)
Comment faire fonctionner JavaScript sur une page spécifique
Comment créer un en-tête ou un pied de page une fois et l'utiliser sur une autre page
Comment créer un URI de données (base64) en Java