ネット上の関連する記事をかなり読みましたが、うまくいかず質問させて頂きます。
flask(python3)を用いてweb apiを実装し、python3コマンドであれば、さくらVPSのipアドレスにアクセスすることでapiを実行できましたが、一度python3コマンドを止めてしまうと動きません。
nginxとuwsgiを元に、常に、python3コマンドを実行せずともipアドレスを叩くと、flaskで作ったapiを実行できるようにしたいです。
以下現状の構成です。
/var/www/api
apiフォルダには、2つのファイルがあります。
- app.py
- uwsgi.ini
・app.pyの中身
import pandas as pd import numpy as np import re import json from flask import Flask, render_template, request, logging, Response, redirect, flash app = Flask(__name__) app.run(host="さくらVPSのIP")
・uwsgi.iniの中身
[uwsgi] app = app home = /var/www/api sock = /var/www/api/var/sock/uwsgi.sock chdir = /var/www/api/ file = app.py module = app callable = app master = true processes = 1 chmod-socket = 666 vacuum = true die-on-term = true aemonize = /var/log/uwsgi/%n.log pidfile = /tmp/myapp.pid uid = k gid = k
/etc/nginx/conf.d
app.conf
・app.confの中身
upstream flask { server unix:///tmp/uwsgi.sock; } server { listen 80; root /var/www/api; server_name さくらVPSで借りたIPアドレス; charset utf-8; location / { try_files $uri @flask; } location @flask { include uwsgi_params; uwsgi_pass flask; } }
上記が設定ファイルになります。
ご教授どうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー