Zusätzlich zur Rückgabe von Hello World! Schließlich HTML, habe ich den Code erstellt, um zu bestätigen, dass etwas in S3 geschrieben werden kann.
EC2(Amazon Linux)
Da der Beispielcode in S3 geschrieben ist, weisen Sie S3 eine put_object-fähige Rolle zu.
nginx
$ sudo yum install nginx
uwsgi
$ sudo pip install uwsgi
you need a C compiler to build uWSGI
Wenn ja, installieren Sie bitte den C-Compiler.
In Installieren von uWSGI wurde es unten aufgeführt.
$ sudo yum groupinstall "development tools"
Referenz: Schnellstart für Python / WSGI-Anwendungen
nginx Bearbeiten Sie /etc/nginx/nginx.conf
nginx.conf
server {
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
location = /favicon.ico{
empty_gif;
}
Als ich es zum ersten Mal über den Browser getestet habe, war es selbst für die Lieblingsanforderung mit uwsgi verbunden und wurde doppelt ausgeführt. Also habe ich auch location = /favicon.ico angegeben.
uwsgi
Bereiten Sie ein Verzeichnis für uwsgi entsprechend vor
$ mkdir /var/www/uwsgi
Fahren Sie mit dem Bild fort, das Sie wie folgt in dieses Verzeichnis gestellt haben.
uwsgi/
index.py #Ausführungsquelle
uwsgi.ini #Einstellungsdatei
uwsgi.log #Protokollausgabeziel
uwsgi.pid #Ausgabeziel der Prozess-ID
uwsgi.ini Schreiboptionen, die zur Laufzeit übergeben werden sollen. Da es lang wurde, schrieb ich es in die INI-Datei.
uwsgi.ini
[uwsgi]
master = True
socket = 127.0.0.1:3031
wsgi-file = index.py
stats = 127.0.0.1:9191
logto = uwsgi.log
pidfile = uwsgi.pid
Referenz: uWSGI-Optionen
Zusätzlich zur Rückgabe von Hello World! Schließlich HTML, habe ich den Code erstellt, um zu bestätigen, dass etwas in S3 geschrieben werden kann.
Ich werde boto3 verwenden, um nach s3 zu exportieren, also werde ich es einfügen.
$ sudo pip install boto3
Die Funktion application ist der Einstiegspunkt von uwsgi. Ändern Sie den Bucket-Namen in Ihren eigenen Bucket-Namen.
index.py
# coding:utf-8
import boto3
import logging
import datetime
import uuid
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.INFO)
def main():
# S3
s3 = boto3.resource('s3')
now_s = datetime.datetime.now().strftime('%Y.%m.%d-%H:%M:%S')
key = 'test-folder/{0}-{1}.txt'.format(now_s, uuid.uuid4())
s3.meta.client.put_object(Bucket='BucketName', Key=key, Body='test dayo')
# log
logger.info('test-log-dayo')
def application(env, start_response):
main()
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World!"
Starten Sie Nginx
$ service nginx start
starte uwsgi
$ cd /var/www/uwsgi
$ uwsgi --ini uwsgi.ini
HTTP-Anfrage an EC2. OK, wenn Sie Folgendes bestätigen können.
Ich habe mit ** control + c ** aufgehört.
Ich blieb bei einem der folgenden Punkte stehen.
$ kill -9 `cat uwsgi.pid`
$ killall -9 uwsgi
Konnte nicht von cgi.FieldStorage erhalten. Erhalten von QUERY_STRING des Anwendungsarguments env.
Konnte nicht von cgi.FieldStorage erhalten. Ich habe es durch Lesen von wsgi.input des Arguments env of application erhalten.
Referenz: Zugriff auf POST-Daten von WSGI
Ich werde es für einen Moment anfassen, aber ich habe es geschrieben, weil es Zeit gekostet hat. Linux ist ein Mann, der vor kurzem angefangen hat, sich zu berühren. Wenn etwas nicht stimmt, lassen Sie es mich bitte wissen. Ende.
Recommended Posts