[RAILS] So erstellen Sie einen Webserver auf einer EC2-Instanz von AWS

Einführung

AWS steht für Amazon Web Servises und ist ein Cloud-Server-Service von Amazon. Wir werden das Gelernte ausgeben, um unser Verständnis von AWS zu verbessern.

Dieser Fluss

"So erstellen Sie einen Anwendungsserver auf einer EC2-Instanz von AWS" (https://qiita.com/daisuke30x/items/4292f96d817805f93d62) Es wird aus der Fortsetzung von erklärt. Mit anderen Worten wird angenommen, dass die Anwendung auf der Instanz installiert ist.

Installieren Sie Nginx auf der EC2-Instanz

Was ist Nginx?

Dies ist ein typischer Webserver.

① Installieren Sie Nginx in Ihrer eigenen Anwendung

Terminal


Melden Sie sich bei der Instanz an
% ssh -Ich Schlüsselpaar Name.pem ec2-user@<Öffentliche IP>

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

Nginx-Einstellungen
[Beispiel]$ sudo vim /etc/nginx/conf.d/rails.conf

Drücken Sie "i" und geben Sie Folgendes ein (zwei Stellen)<Anwendungsname>Und ein Ort<Elastic IP>Wenden Sie Ihre eigenen an

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


upstream app_server {
  #Einstellungen für die Verknüpfung mit Unicorn
  server unix:/var/www/<Anwendungsname>/tmp/sockets/unicorn.sock;
}

# {}Der von umgebene Teil wird als Block bezeichnet. Kann den Server einstellen
server {
  #Portnummer, an der dieses Programm Verbindungen akzeptiert
  listen 80;
  #URL anfordern, um Verbindung zu akzeptieren Kein Zugriff mit URL, die hier nicht geschrieben ist
  server_name <Elastic IP>;

  #Stellen Sie die maximale Größe der vom Client hochgeladenen Dateien auf 2 Giga ein. Der Standardwert ist 1 Mega, halten Sie ihn also groß
  client_max_body_size 2g;

#Stammverzeichnis, als die Verbindung hergestellt wurde
  root /var/www/<Anwendungsname>/public;

#Assets-Datei(CSS- und JavaScript-Dateien usw.)Einstellungen, die beim Zugriff angewendet werden
  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


Nachdem Sie das Obige eingegeben haben, drücken Sie die Esc-Taste und wählen Sie ":Geben Sie wq ein und speichern Sie

Ändern Sie die Nginx-Berechtigungen
[Beispiel]$ cd /var/lib
[Instanz lib]$ sudo chmod -R 775 nginx  
(-R: Option zum Ändern aller Berechtigungen im Verzeichnis)

Starten Sie Nginx
[Instanz lib]]$ cd ~
[Beispiel]$ sudo systemctl start nginx
[Beispiel]$ sudo systemctl reload nginx

② Ändern Sie die Anwendungseinstellungen

Dieses Mal werde ich erklären, dass Sie Unicorn verwenden.

config/unicorn.rb


Behoben, 3000 zu hören=> listen "#{app_path}/tmp/sockets/unicorn.sock"
Wechseln Sie in das Anwendungsverzeichnis der Instanz
[Beispiel]$ cd /var/www/<Anwendungsname>

[Beispiel<Anwendungsname>]$ git pull origin master

Terminal


Überprüfen Sie den Prozess
[Beispiel<Anwendungsname>]$ ps aux | grep unicorn
=>Die zweite Nummer von links ist die Prozess-ID

Stoppen Sie den Prozess
[Beispiel<Anwendungsname>]$ kill <unicorn_Prozess-ID des Schienenmasters>

Starten Sie die Anwendung erneut
[Beispiel<Anwendungsname>]$ RAILS_SERVE_STATIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D

"RAILS_SERVE_STATIC_FILES = 1" ist die Rolle, die die zu findende kompilierte Asset-Datei angibt.

** Geben Sie im Browser ein. Wenn die Anwendung angezeigt wird, ist sie erfolgreich. ** ** **

Schließlich

Wir hoffen, dass dieser Beitrag Anfängern bei der Überprüfung hilft.

Recommended Posts

So erstellen Sie einen Webserver auf einer EC2-Instanz von AWS
So erstellen Sie einen Anwendungsserver auf einer EC2-Instanz von AWS
So installieren Sie Ruby auf einer EC2-Instanz von AWS
So veröffentlichen Sie eine Anwendung mithilfe der AWS (3) EC2-Instanzumgebungskonstruktion
Erstellen Sie eine Laravel-Umgebung auf einer AWS-Instanz
Umfang des Versuchs, eine Java-Webanwendung unter Windows Server 2016 zu erstellen
Bereitstellen von Laravel mit Docker auf EC2 unter AWS ① (EC2-Instanz erstellen)
Umgang mit Instanzen
So erstellen Sie eine Methode
So gelangen Sie in einen Container, der auf AWS Fargate ausgeführt wird
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
So stellen Sie die Rails-Anwendung in AWS bereit (Artikelzusammenfassung)
Erstellen Sie einen Minecraft-Server auf AWS
So installieren und verwenden Sie Composer auf einer ECS-Instanz unter Ubuntu 16.04
Schritte zum Veröffentlichen einer Anwendung auf Heroku
So erstellen Sie ein Maven-Repository für 2020
[Rails] So erstellen Sie eine Teilvorlage
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
So migrieren Sie eine in einer lokalen Docker-Umgebung erstellte Webanwendung nach AWS
So erstellen Sie überall eine H2-Datenbank
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So zeigen Sie eine Webseite in Java an
So erstellen Sie Pagenationen für das "Kaminari" -Array
So speichern Sie Bilder auf Heroku in S3 unter AWS
So erstellen Sie eine Klasse, die Klasseninformationen erbt
So erstellen Sie ein Thema in Liferay 7 / DXP
[1.] So erstellen Sie ein Spring-MVC-Framework-Projekt
So erstellen Sie einfach ein Pulldown mit Rails
Rails6.0 ~ So erstellen Sie eine umweltfreundliche Entwicklungsumgebung
[Rails] So erstellen Sie eine Twitter-Freigabeschaltfläche
Ich habe versucht, Docker auf einer EC2-Instanz zu installieren
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu
Erstellen Sie einen Web-API-Server mit Spring Boot
Hinweise zum Erstellen von Burp Suite-Erweiterungen
So erstellen Sie ein Oleore-Zertifikat (SSL-Zertifikat, Selbstzertifikat)
So überprüfen Sie, ob eine Instanzvariable in einer Ruby-Klasse definiert ist
So stellen Sie ein mit Java erstelltes System (Wicket-Spring-Boot) auf dem Campus-Server bereit
So erstellen Sie ein Excel-Formular mithilfe einer Vorlagendatei mit Spring MVC
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
Erstellen einer EC-Site mit Rails 5 ⑨ ~ Erstellen einer Warenkorbfunktion ~
Führen Sie auf, wie Sie in AWS von Docker zu AKS lernen können
So erstellen Sie eine JDBC-URL (Oracle Database, Thin)
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
So funktioniert JavaScript auf einer bestimmten Seite
So erstellen Sie eine Kopf- oder Fußzeile einmal und verwenden sie auf einer anderen Seite
So erstellen Sie einen Daten-URI (base64) in Java