10 ポイント 投稿者 xguru 2021-09-27 | まだコメントはありません。 | WhatsAppで共有
  • nginx の設定を自由に変更してテストできるプレイグラウンド

→ config と curl/http コマンドを入力して Run を押して実行

→ 実行したコマンドの結果と nginx のエラーログを表示

  • Vue.js フロントエンド + Go バックエンド(Gist ではサーバーコードのみ公開)

  • 実行ボタンを押すと Go バックエンドが次の処理を実行

→ 設定ファイルを temp ファイルとして保存

→ 新しいネットワーク名前空間を作成

ip netns add $RANDOM_NAMESPACE_NAME

→ go-httpbin を 777 ポートで実行

→ nginx を起動

→ nginx が正常に起動するまで 100ms 待機。失敗した場合は nginx のエラーログを返す

→ ユーザーが入力したコマンドを実行(curl / http になっているか確認)

→ リクエストの出力を返す

  • 1 台の共有サーバーですべてのリクエストを処理

  • セキュリティ面でのアプローチ:少しの isolation、少しの YOLO

→ フロントエンドは CDN でホスト

→ DB は使わない。ブラウザのローカルストレージのみ使用

→ すべての nginx をそれぞれ専用のネットワーク名前空間に置く。インターネット接続はできないようにする

→ fly.io の無料ティアを使用

→ FAQ に「みんなが気持ちよく使えるように行動してほしい」と書く

  • パフォーマンス

→ とても小さなインスタンス(1 shared CPU、256MB RAM)

→ フロントエンドは CDN 上にあるため、バックエンドは実際に使われる時だけ稼働

→ 1 リクエストあたり約 400ms。悪くない

→ Go 版 httpbin はオリジナルの Python 版より軽量

→ フロントエンドの性能はそれほど良くはない

まだコメントはありません。

まだコメントはありません。