ouistiti (ˈwistiti)は、新世界の小さな猿のマルモセットのフランス語の名前です。
Ouistitiは、小さなデバイスを管理および構成するための小さなWebサーバーです。ドキュメント、 WebSocket 、 REST APIなどのセキュリティのための統一されたWebインターフェイスを作成できます。
Ouistitiは、Webサーバーから制御するためにデバイスに埋め込まれるように専用です。
Ouistitiでは、すべてのページ、WebSocket、スクリプトが同じ方法で保護されています。自分で認証を管理することは役に立たない。
TLS/SSL接続は、 MBEDTLSまたはOpenSSLライブラリを備えたモジュールとして利用できます。
認証は、すべてのクライアントの接続で利用できます。ユーザーのパスワードは、ストレージ用に暗号化される場合があります。次の課題がサポートされています。
モジュールは、HTTPソケットクライアントとUNIXソケットの間にWebSocketブリッジを構築します。握手とアプリケーションへのデータの転送を管理することができます。 UnixソケットでCammandsのサーバーを開発すると、HTTPS接続とその認証ゲートでそれを保護します。サーバーの例を見つけることができます。
WebSocketのように、 Ouistitiはストリームのサーバーを保護できます。アプリケーションはUNIXソケットにデータを送信する必要があり、 OuistITIは残りを行います。
他のWebサーバーと同様に、 Ouistitiはあらゆる種類のファイルをクライアントに送信できます。同時に、サーバーでそれらを管理できます。
CGIスクリプトは、クライアントから呼び出す場合があります。
いくつかのURIは、別のURIでリダイレクトする必要があります。このモジュールは、構成ファイルのみでそれを行います。
サーバーは、ブラックリストとIPアドレスのホワイトリストから始めることができます。
サーバーは、URIアクセスに関するルールをデータベースに保存します。ルールは、ユーザーの「役割」、リクエストの種類、URIの式の組み合わせです。各リクエストは、認証後およびRessourceにアクセスする前にチェックされます。
モジュールには、データベースを設定する独自のRESTAPIが含まれており、権利チェックに認証モジュールを使用します。
このモジュールは、接続をアップグレードし、開いたソケットとUNIXソケットサーバーの間にデータを転送できます。
UNIXサーバーは、ソケットにあらゆる種類のデータを送信および受信する場合があります。安全でないサーバーを再利用でき、認証やTLS接続などのHTTP機能を使用します。
WebSocketモジュールには閉じられていますが、HTTPを介した一部のプロトコルには便利かもしれません。
このモジュールは、Python通訳を実行してスクリプトを呼び出します。現在、このモジュールはステージングであり、Djangoサイトを実行したいと考えています。
Ouistitiは、最速のWebサーバーになるために、1つのプロセスでクライアント接続を管理するために構築される場合があります。または、クライアント接続ごとに独立したプロセスを作成して、その周りにサンドボックスを作成する場合があります。
Ouistitiは、最大のシステムに基づいて構築されるように書かれています。コードはC99に準拠しており、スレッドが無効になる場合があり、構成はメモリからロードされる場合があります。
ouistitiは、libhttpserverライブラリ上に構築されています。このライブラリには、HTTPパーサー、ソケットの管理、およびいくつかの一般的なモジュールが含まれています。
このプロジェクトはGitHubで入手できます
Libhttpserverは、ライブラリのソースがOUISTITIプロジェクト内で利用できる場合、 Libouistitiと改名される場合があります。
プロジェクトLIBB64は、一部のパッチで必須です。ソースは、Ouistiti-ProjectまたはInside Ouistitiプロジェクトで利用できます。
SSL/TLSサポートは、いくつかのライブラリによって提供される場合があります。
クライアントとの認証ダイアログの場合、パスワードはMD5アルゴリズムで暗号化される場合があります(これは安全ではありませんが、少なくとも基本的および消化認証には必須です)。 SSL/TLSが利用できない場合、認証モジュールには1つのMD5ライブラリが必須です。
ouistitiはpthreadライブラリを使用しない場合があります。これは構成によって異なります。ただし、一部のツールでは、WebsocketサーバーなどのPthreadライブラリを使用する場合があります。
Ouistitiは、Libconfigライブラリを使用して、サーバーとさまざまなモジュールを設定します。
ドキュメント:mod_auth
最初のバージョンはLinuxとWindowsで実行されました。現在、Linuxバージョンのみがテストされています。
最初のステップソースツリーをダウンロードします。
$ git clone https://github.com/ouistiti-project/ouistitiおよびlibhttpserverプロジェクト
$ git clone https://github.com/ouistiti-project/libhttpserver構築するには2つの方法があります。
このプロジェクトでは、Makemoreを使用してすべてのバイナリを構築しています。
Makemoreには、GnumakeファイルとConfigureスクリプトが含まれています。スクリプトは、 default.configファイルから構成ファイルを書き込むために使用されます。構成を使用すると、インストールディレクトリと構築する部品を選択できます。
$ ./configure --prefix=/usr --libdir=/usr/lib/ouistiti --sysconfdir=/etc/ouistitiMakemoreはKbuild Makefileとして実行される場合があります。 Makeで構成ファイルを直接選択することができます。
その他の構成は、構成/ディレクトリ内で利用可能です。 *接続のクラッシュ後も実行し続けることができるサーバー用のFullForked_defconfig 。
$ make fastmono_defconfigまたは
$ make fullforked_defconfigまたはデフォルトの構成の場合:
$ make defconfigゲートウェイやボックスなどの埋め込みデバイスの場合、 FullForked_defconfigが推奨されます。
構成は、フィールドと値を持つテキストファイルです。ルートディレクトリ上のdefconfigファイルを変更してはなりません。既存のファイルをConfigs/ Directoryで変更またはコピーすることができます。
フィールド
file_config:構成にouistiti.confファイルを使用します。
vthread:サーバーへのマルチスレッドを有効にします。
vthread_type:[fork | pthread | windows]などの値を取り、スレッドの管理方法を指定します。
静的:アプリケーション、ライブラリ(libhttpserver、libouiutils ...)、およびモジュールをスタンドアロンバイナリに構築します。
共有:動的ライブラリ(libhttpserver、...)をビルド/リンクし、統合モジュールを使用してアプリケーションをリンクします。
モジュール:モジュールを動的ライブラリとして構築すると、アプリケーションは実行時にロードされます。
MAX_SERVERS:管理するサーバーと仮想ホストの数を選択できます。
コンパイルはGmakeで行われ、コマンドラインの構成を受け入れます。
ouistitiは、コードとデバッグシンボルにトレースを追加するための特定のオプションデバッグを利用できます。
$ make DEBUG=y[Makemore]は、 Vオプションでコンピレーションラインを視聴できます。
$ make V=1ouistitiは、ビルドホスト以外のターゲットのためにビルドされる場合があります。そのためには、いくつかの構成を追加する必要があります。
$ make CROSS_COMPILE=arm-linux-gnueabihfデフォルトのインストールでは、ライブラリを/usr/local/lib/ directoryにコピーし、デフォルトの構成を使用して/usr/local/binにバイナリをコピーします。プロジェクトの構成中にパスが変更される場合があります(以下を参照)
> make installインストール前に新しいディレクトリのツリーを作成するには、 DestDir変数が変更される場合があります。
> make DESTDIR= ~ /packages/ouistiti installOuistitiは、配布のパッケージを構築するためにレシピで配布されています。
ouistitiは、構成にlibconfigを使用します。構成の章の詳細をご覧ください。
ouistitiを使用すると、ビルド構成中に必要な各機能を選択できます。デフォルトの構成により、すべての機能を最小限の場所に使用できます。
ここでは、剥がした後の腕のサイズ:
メモリの使用量は、ビルド構成と同時接続の数に依存します。
アームアーキテクチャのデフォルトの構成により、使用量はメインプロセスで約4.5mo 、クライアントの接続ごとに約13.5moです。ただし、小さな構成にはわずか5.5かが必要です。
Ouistitiに1つのプロセスのみがある場合、VMSizeは約26か月です。
パフォーマンスページには、メモリの使用に関する情報が増えます。
Ouistitiは、Big NetworkのWebサーバーではありませんが、ドキュメント配信の結果が得られます。パフォーマンスはビルド構成に依存するため、必要です。
ouistitiは、lighttpd 1.4よりも高速である場合がありますが、すべての機能はありません。パフォーマンスページにテスト結果を見つけることができます。