1.Flaskプロジェクトフォルダーを作成します
mkdir Flaskproject
cd Flaskproject
2. Flask ソースコードと仮想環境を構成する
app.py の例:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "Hello World!"
if __name__ == '__main__':
app.run(debug=True)
pip install virtualenv # 如果已安装则跳过
python -m venv flaskenv # 新建flask虚拟环境
source flaskenv/bin/activate # 激活flask虚拟环境(退出虚拟环境:deactivate)
pip install -r requirements.txt # 安装依赖库
# pip install -r requirements.txt --no-dependencies 包版本冲突时可忽略版本要求,解决冲突
# 生成依赖库文件用 pip freeze > requirements.txt
3. ガニコーンをインストールする
pip install gunicorn
4. ガニコーンサービスを開始する
nohup gunicorn -w 4 -b 0.0.0.0:5000 app:app & #不带日志
nohup gunicorn -w 4 -b 0.0.0.0:5000 app:app > gunicorn.log 2>&1 & #带日志
その中で、-w はプロセスの最大数を設定し、-b は IP とポートをバインドします。最初のアプリは app.py のファイル名で、2 番目のアプリは Flask アプリケーションのインスタンス名であり、次に従って変更できます。あなた自身のプロジェクト。
gunicorn 構成ファイルをカスタマイズする必要がある場合は、対応するパスに conf ファイルを作成し、構成後に起動コマンドに -c gunicorn.conf を追加します。(gunicorn の設定チュートリアルについては、Gunicorn 設定の詳細な説明を参照してください。 )
次に、http://xxxx:5000 にログインして、Flask プロジェクトにアクセスします。
アクセスにポート 80 を使用する場合は、Ngix を通じて指定したポートをポート 80 に指定できます。
5.Nginxをインストールする
sudo apt-get install nginx
6. Nginx 設定ファイル (/etc/nginx/nginx.conf) を変更します。
次の 2 行を見つけて、2 行目をコメントアウトします。(ファイルの保存には sudo または root 権限が必要な場合があります)
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
http 設定にサーバー設定を追加します。http{} に追加することに注意してください。{}
http {
##############################
server {
listen 80;
server_name localhost; # 外界实际访问的地址
location / {
proxy_pass http://localhost:5000; # 转发的本机端口地址
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
##############################
}
ssl 証明書があり、http を https に自動的にリダイレクトする場合は、次の構成を使用します。
http {
##############################
server {
listen 80;
server_name localhost; # 外界实际访问的地址
return 301 https://$host$request_uri; # http重定向https
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate xxx.com.pem; # 改为自己的ssl证书的目录
ssl_certificate_key xxx.com.key; # 改为自己的ssl证书秘钥的目录
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:5000; # 转发的本机端口地址
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
##############################
}
7. Nginx 構成が正しいかどうかをテストする
$ sudo nginx -tc /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
8. Nginxサービスを再起動します
sudo service nginx restart
# 或者 sudo nginx -s reload
この時点では、ポート番号を指定せずに、http://xxxx にログインしてページに直接アクセスできます。
興味があれば、私の Flask プロジェクトもご覧ください。興味深く便利なガジェットをいくつか書きました。