nginx playground
(jvns.ca)- 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 版より軽量
→ フロントエンドの性能はそれほど良くはない
まだコメントはありません。