Hallo Mogken.
Es ist über 3 Monate her, seit ich den Artikel über das Ändern von Jobs geschrieben habe, indem ich das letzte Mal eine Scraping-App mit Python + Django + AWS erstellt habe. Wie der Titel schon sagt, habe ich glücklicherweise erfolgreich den Job gewechselt und den Job in ein Unternehmen gewechselt, das ab Januar eine Cloud-Plattform entwickelt * \ (^ o ^) / *
Daher werde ich dieses Mal kurz die Prozedur beim Erstellen der Python-Webanwendung aufzeichnen, die zu diesem Zeitpunkt in AWS erstellt wurde. Es tut mir leid, aber es ist lange her, daher kann ich nicht garantieren, dass der Inhalt korrekt ist, da mein Gedächtnis etwas vage ist ... Betrachten Sie es als Amateur-Memorandum.
Installieren Sie Python3, Django, Nginx und Gunicorn auf der AWS VM (Centos7) und stellen Sie die erstellte Webanwendung bereit. Ich dachte daran, einen Road Balancer und eine automatische Skalierung durchzuführen, aber da ich Jobs wechseln konnte, war ich mit der einfachsten Konfiguration erschöpft ...
Konfigurationsdiagramm (ich brauche es nicht, weil es zu klein ist, aber vorerst)
Die Elemente, die in dieser Konfiguration in AWS festgelegt werden sollten, werden grob wie folgt beschrieben.
Das detaillierte Verfahren wird hier nicht beschrieben. Weil das Verfahren, sich nur an Amateure zu erinnern, so beängstigend ist, dass ich mich nicht darauf beziehen kann.
Referenz-URL: https://qiita.com/okoppe8/items/dc1de147a36797442e4c
In AWS müssen Sie zuerst eine VPC erstellen, um eine VM zu starten.
Der Fluss ist wie folgt
Erstellen Sie eine VM, um Ihre Anwendung zu erstellen. Sie müssen jedoch nur EC2 erstellen, indem Sie auf die Schaltfläche klicken.
Legen Sie die Domäne für die Veröffentlichung mit Route53, dem DNS-Dienst von AWS, fest.
Ich habe mich auf diese Seite bezogen.
https://avinton.com/academy/route53-dns-vhost/
Nach dem Erstellen der VM in AWS besteht der nächste Schritt darin, die gestartete VM einzurichten.
Von hier aus werde ich etwas näher erläutern. (Weil ich viele Male versagt und es wiederholt habe, ist mein Gedächtnis klar ...)
Danach sind die Einstellungen von hier grundsätzlich
https://narito.ninja/blog/detail/21/#_3
Ich verweise auf diese Seite. Dieser Blog enthält viele sehr leicht verständliche Artikel rund um Django, daher kann ich ihn nur empfehlen.
Das Verfahren ist wie folgt
Gleichzeitig mit der Erstellung von EC2 wird auch ein Authentifizierungsschlüssel für den Zugriff mit ssh erstellt. Laden Sie ihn herunter und verwenden Sie ihn. Wenn Sie nicht verstehen, was Sie sagen, können Sie über den AWS-Konsolenbildschirm auf die VM im Web zugreifen. Versuchen Sie es dort.
Wenn Sie versuchen, den heruntergeladenen Authentifizierungsschlüssel unverändert zu verwenden, werden Sie wütend, wenn die Berechtigung zum Authentifizierungsschlüssel zu offen ist. Daher müssen Sie die Dateiberechtigung mit dem folgenden Befehl festlegen.
chmod 400 "Name der heruntergeladenen Authentifizierungsschlüsseldatei"
Danach können Sie mit dem folgenden Befehl auf ssh zugreifen.
ssh -i ***. Pem ec2-user @ EC2 öffentlicher DNS-Name oder öffentliche IP
Referenz-URL: https://qiita.com/s_runoa/items/156f3fa67c82e9cd9f42
Installieren Sie von hier aus die erforderlichen Pakete. Zuallererst Python. Ich benutze Pyenv, aber ich weiß immer noch nicht genau, was Pyenv ist ...
#yum Paket Update yum update -y
#Installieren Sie die erforderlichen Pakete sudo yum install git gcc zlib-devel libffi-devel bzip2-devel readline-devel openssl-devel sqlite-devel
Installieren Sie #pyenv git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Zu # .bash_profile hinzugefügt
export PYENV_ROOT="
** Starten Sie den Server jetzt neu **
pyenv install --list
CFLAGS="-fPIC" pyenv install 3.7.2
pyenv versions
pyenv global 3.7.2
pyenv rehash
#Installationsbestätigung python --version
Installieren Sie nach der Installation von Python Django. Mein erstes Framework ist übrigens Django, daher habe ich ein ganz besonderes Gefühl für Django.
pip install Django
Damit ist die Installation von Django abgeschlossen, aber ich denke, es ist eine gute Idee, hier Maßnahmen zu ergreifen, da Sie später wütend werden, wenn die Version von sqllite alt ist.
Manchmal kann man nicht wütend werden. Wenn man also verärgert ist, kann man es überspringen und tun, nachdem man wirklich wütend ist.
** Upgrade von Sqllite **
Referenz-URL: https://qiita.com/rururu_kenken/items/8202b30b50e3bfa75821
Holen Sie sich die # tar-Datei wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
Entpacke #tar tar xvfz sqlite-autoconf-3280000.tar.gz
#Bauen und installieren cd sqlite-autoconf-3280000 $ ./configure --prefix=/usr/local $ make $ sudo make install $ sudo find /usr/ -name sqlite3
$ sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
$ sudo ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
$ export LD_LIBRARY_PATH="/usr/local/lib"
** Einstellungsdatei bearbeiten **
Nehmen Sie hier die Mindesteinstellungen vor, um Django normal zu starten.
Erstellen eines # django-Projekts django-admin startproject "Projektname"
#django App erstellen python manage.py startapp "app name"
vi / "Projektname" / "Projektname" /setting.py
#Bearbeiten Sie die Elemente in settings.py unten Am Ende von #installed_app hinzugefügt "App-Name" .apps. "App-Name (Großbuchstaben des ersten Buchstabens)" Konfig Beispiel) 'myapp.apps.MyappConfig'
DEBUG = False
ALLOWED_HOSTS = ["Domainnamen festlegen"]
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
#Static Dateispeichereinstellungen STATIC_URL = '/ static /' # Dies ist von Anfang an. STATIC_ROOT = '/usr/share/nginx/html/static' MEDIA_URL = '/media/' MEDIA_ROOT = '/usr/share/nginx/html/media'
#Speichern und beenden Sie die Bearbeitung settings.py
sudo python manage.py collectstatic
Verwenden Sie Nginx für den Webserver. Als ich das zum ersten Mal sah, wusste ich nicht, wie ich es lesen sollte.
Nginx-Installation
Installieren Sie #nginx sudo amazon-linux-extras install nginx1.12
Nginx-Einstellungen
#Einstellungsdatei bearbeiten sudo vim /etc/nginx/conf.d/project.conf
#Die folgenden Einstellungselemente server { listen 80; Servername "öffentliche IP-Adresse des Servers";
location /static {
alias /usr/share/nginx/html/static;
}
location /media {
alias /usr/share/nginx/html/media;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
#Speichern und schließen
sudo nginx -t
Starten Sie #nginx sudo systemctl reload nginx
#Einstellung, um nginx gleichzeitig mit dem Start des Servers zu starten sudo systemctl enable nginx
Zum Schluss installieren Sie Gunicorn als wsgi. Ich weiß nicht, was wsgi und gunicorn von ihren Namen sind ...
sudo pip3.7 install gunicorn
Das ist es. Wie einfach.
Starten Sie schließlich den Dienst
Wechseln Sie in den Projektordner, in dem sich die Datei # manage.py befindet cd /project
Starten Sie #gunicorn sudo gunicorn --bind 127.0.0.1:8000 project.wsgi:application
Zu diesem Zeitpunkt können Sie über den Domainnamen auf das Django-Projekt zugreifen.
Zum Schluss nehmen Sie die Einstellungen vor, wenn Sie Gunicorn stoppen möchten
Überprüfen Sie die Prozessnummer von #gunicorn lsof -i:8000
kill -9 "angezeigte Prozessnummer"
Ich war sehr glücklich, als die Seite nach dem Kampf gegen verschiedene Fehler endlich gestartet wurde. Ich fühlte mich ein wenig erwachsen.
Recommended Posts