Ich habe es 2014 nachgeschlagen und persönlich gesagt, dass dies die Python-API-Servereinstellung ist.
Legen Sie Nginx auf die Vorderseite und verwenden Sie gunicorn, damit der Anwendungsserver den Proxy umkehrt.
Es ist ein bisschen alt, aber ich habe mich dafür entschieden, indem ich mich auf Instagram bezog. INSTAGRAM ENGINEERING
Ein Memo bei der Einstellung auf AWS EC2.
Installiert mit pip auf virtualenv. Ich benutze virtualenv, weil ich es nicht mag, wenn ich beim Spielen mit Python unter dem Betriebssystem hängen bleibe, und ich möchte die Version von Python erhöhen.
Ich bin nicht sehr vertraut damit, aber ich habe mich für den Emporkömmling registriert.
Beschreiben Sie die folgende Einstellungsdatei.
/etc/init/myapp.conf
description "[APP NAME] API Server"
start on runlevel [2345]
stop on runlevel [016]
respawn
script
su - www
/home/www/[APP NAME]/virtualenv/bin/gunicorn -b 127.0.0.1:8000 -w 4 -u www --chdir /home/www/[APP NAME]/server/python --log-file /home/www/[APP NAME]/logs/error_log --pythonpath /home/www/[APP NAME]/server/python server:application
end script
Zum Zeitpunkt von centos7 ist der Upstart nicht enthalten. Setzen Sie ihn daher auf systemctl. Sie finden es auf der Gunicorn-Website, einschließlich der Konfigurationsdatei.
Referenz: Bereitstellen der Dokumentation zu Gunicorn --Gunicorn 19.3.0
Installieren Sie mit yum.
Nginx-Konfigurationsdatei.
/etc/nginx/nginx.conf
user www;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
index index.html;
upstream app_server {
server 127.0.0.1:8000 fail_timeout=0;
}
server {
listen 80;
server_name [DOMAIN];
root /home/www/[APP NAME]/server/html;
access_log /var/log/nginx/[APP NAME].access.log main;
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
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 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
Die Haupteinstellungen sind die folgenden zwei.
Recommended Posts