CentOS7上で、Nginx + uWSGI + Flask を動かす

投稿者: | 2020年1月13日

必要なものをインストールします。

    $ sudo su -
    # yum install python3-devel
    # pip3 install wheel
    # yum install gcc
    # pip3 install uwsgi
    # touch /etc/yum.repos.d/nginx.repo
    # vi /etc/yum.repos.d/nginx.repo
    -----
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/7/$basearch/
    gpgcheck=0
    enabled=1
    -----
    # yum install nginx
    # systemctl start nginx
    # systemctl status -l nginx
    # systemctl enable nginx
    # systemctl is-enabled nginx
    # pip3 install flask
    # exit

Flask アプリケーションを作成します。

    # cd /var/
    $ sudo mkdir flaskap
    $ sudo chown -R centos:centos flaskap/
    $ cd flaskap/
    $ vi main.py
    -----
    from flask import Flask
    app = Flask(__name__)

    @app.route("/")
    def hello():
        return "Hello World!"

    if __name__ == "__main__":
        app.run()
    -----

Nginxにuwsgiを設定します。

    $ sudo vi /etc/nginx/conf.d/uwsgi.conf
    -----
    server {
        listen       50000;

        location / {
            include uwsgi_params;
            uwsgi_pass unix:///tmp/uwsgi.sock;
        }
    }
    -----
    $ sudo systemctl restart nginx

uwsgiの起動パラメータを設定して、起動します。

    $ vi uwsgi.ini
    -----
    [uwsgi]
    socket = /tmp/uwsgi.sock
    module = main
    callable = app
    chmod-socket = 666
    -----
    $ uwsgi --ini uwsgi.ini &

Flaskアプリケーションにcurlでアクセスできるか確認します。

    $ sudo setenforce 0
    $ curl http://127.0.0.1:50000/
    Hello World!

参考

カテゴリー: OSS