おくの@LL部(軽量言語)です。
今回はnginxとsinatraを組み合わせた、運用方法についてです。
軽量言語の軽量フレームワークSinatraでは、とにかく開発を優先し
mongrelやfastcgiを利用せずに、起動が容易いWEBrickを利用する場合についてです。
WEBRickをそのまま、フロントに立たせるのも気が引けるので
nginxからproxyをしてやります。
- 《 nginx.conf設定例 》
location /sinatra/ { proxy_pass http://localhost:3000/; } location /__sinatra__/ { root /usr/share/nginx/html; }
※__sinatra__ について
(私の試したバージョンの)sinatraは、エラー画面での画像を /__sinatra__/ にリクエストしていました。
取り合えずということで,gemのディレクトリーから適宜ファイルを nginxのドキュメントルートに移し、設定を追加しました。
http://yourhost.yourdomain/sinatra/
で、nginx経由でアプリにアクセス可能です。
アクセス制御等は、sinatraで実装する方法は勿論ありますが(むしろ、それが普通)
何よりも、完成のみを急ぐ場合には、nginx層でip制限や、basic認証を行うのも有効な手段です。
そして、nginxの設定で、悪意の無いと思われるhostのみアクセス出来るように
nginx側で設定を行います。こちらについては、basic認証、ip制限等がまず思いつきます。
この用に簡易的なcgiをWebサーバー上で稼動させる場合には、
接続先の制限や、必要な認証をnginx(WebServer)側で十分に検討してやる必要が有りますが
上手く組み合わせる事で、簡単に今利用している自作ツールにWebの実行インターフェースを持たせる事が可能なのです。