前回の記事は、こちら
https://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html
セキュリティが強化されたようで、config.json に user を追加しています。
一旦動いてしまえば、Unit 最高。
[Flask]
Googleさえあれば、生きていける。多分...。
前回の記事は、こちら
https://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html
セキュリティが強化されたようで、config.json に user を追加しています。
一旦動いてしまえば、Unit 最高。
[Flask]
多分、この手順が一番簡単。
参考
1. GCE インスタンス作成
2. VSCode Remote Development 拡張機能追加
3. ローカルPC からコマンド入力
$ gcloud compute ssh {インスタンス名} --zone={ゾーン名} --tunnel-through-iap --dry-run
4. 出力結果を VSCodeに貼り付け
以上です。
早速、リファクタリング、やってみました。
とにかく、すげぇ〜。
これまで、(独学と言えば聞こえは良いが・・・要は適当に、) 見様見真似でコード書いてたのが、先人の知見をお借りして、どんどんと良いコードになっていく感じ。最高です。
リスト内包表記を(勝手に)提案してくれるし、変数名を(勝手に)変更してくれるし。
PEPなんちゃらと(言い訳しながら)、とにかく、的確なご指摘ありがとうごさいます。
とりあえず、こんな感じでプロンプトしてます。
「次のコードを視認性良く、リファクタリングして。〜自分のコード〜」
いや〜、良い時代です。
格安VPSのWebARENAは、いつもインスタンスの在庫不足で、申込みが出来ませんでした。
https://arena.secure.customer.ne.jp/signup/vpsc/zone
たまたま、申込みが出来たので、Webサーバ構築の手順をメモしておきます。
申し込みページ
https://arena.secure.customer.ne.jp/signup/vpsc/zone
お客様番号とか、契約者IDとか、サービスIDとか、とても分かり辛いですが、適当に入力して申込み完了。手順は全然思い出せませんが..
インスタンスタイプ
・メモリ 1GB
・CPU 仮想1コア
・ディスク SSD 20GB
躓きどころ
・ログイン
Ubuntuを選択した場合、初期ユーザ名は「ubuntu」です。
「root」ではログインできません。
・セキュリティグループ
要は、ファイヤーウォールです。
デフォルトでは、全てのポートを閉じているので、設定必須です。
SSHで接続できれば、後は、いつものUbuntuです。
参考
http://yamayoshi.blogspot.com/2020/04/gcenginx-unitweb.html
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install python3-venv python-pip
仮想環境 & Flaskインストール
$ cd
$ mkdir project1 && cd project1
$ python3 -m venv venv
$ source ./venv/bin/activate
V pip install Flask
アプリケーション
V nano main.py
--
from flask import Flask
application = Flask(__name__)
@application.route("/")
def index():
return "Hello Project1!"
if __name__ == "__main__":
application.run()
--
動作確認
V python3 main.py
→コンソールをもう1つ開いて動作確認
$ curl http://127.0.0.1:5000/
V deactivate
Nginx (Webサーバ)
http://unit.nginx.org/installation/#ubuntu-1804
(インストール準備)
キー取得
$ sudo -i *rootで作業
# curl -sL https://nginx.org/keys/nginx_signing.key | apt-key add -
リポジトリ追加 *Ubuntu18.04 = bionic
# nano /etc/apt/sources.list.d/unit.list
--
deb https://packages.nginx.org/unit/ubuntu/ bionic unit
deb-src https://packages.nginx.org/unit/ubuntu/ bionic unit
--
インストール
# apt update
# apt install unit unit-dev unit-python3.6
コンフィグ
https://unit.nginx.org/howto/flask/
ソケットの場所を調べる
# unitd --help
--control ADDRESS
set address of control API socket
default: "unix:/var/run/control.unit.sock"
現在の設定をファイルに出力
# curl --unix-socket /var/run/control.unit.sock http://localhost/config/ > config.json
Flask用の設定
# nano config.json
--
{
"listeners": {
"*:80": {
"pass": "applications/flask_app"
}
},
"applications": {
"flask_app": {
"type": "python",
"path": "/home/ubuntu/project1/",
"home": "/home/ubuntu/project1/venv/",
"module": "main"
}
}
}
--
*説明
listeners: ポート *80(HTTP)
type: 言語
path: プログラムの場所
home: 仮想環境の場所
module: プログラム本体(ファイル拡張子を除く)
設定を上書き
# curl -X PUT --data-binary @config.json --unix-socket /var/run/control.unit.sock http://localhost/config
再起動
# service unit restart
ブラウザから動作確認。
おつかれさまでした。