NGX_HTTP_HANDLERSOCKET_JSON_MODULEモジュールは、HandlerSocketプロトコルを介してMySQLデータにアクセスし、JSON形式でデータを送信します。 AJAXの範囲。
ソースコード
構成、機能、および制限については、以下をご覧ください。
設置
インストールは標準で、-add-moduleオプションを使用した構成です。
./configure --add-module=/full/path/to/dir/nginx_http_handlersocket_json_module
さらに
make & sudo make install;
構成
構成は、場所のコンテキストで定義されます。 以下の例:
場所〜 / json /(。+)/ $ {
hs_json ;
hs_json_host 127 。 0 。 0 。 1 ;
hs_json_port 9998 ;
hs_json_dbテスト;
hs_json_table hs_test ;
hs_json_indexコード; #PRIMARYデフォルト
hs_json_fields keyid 、 value 、 code ;
hs_json_op "=" ; #=デフォルト
hs_json_limit 10 ; #デフォルト10
$ hs_request $ 1を設定します。
}
詳細:
hs_json; -モジュールをアクティブにします
接続パラメーター(デフォルトのホストとポートはlocalhost:9998なので、省略できますが、データベース名を指定する必要があります):
hs_json_host 127.0.0.1;
hs_json_port 9998;
hs_json_dbテスト;
データテーブルと選択したフィールドのリスト(すべてのパラメーターが必要です):
hs_json_table hs_test;
hs_json_fields keyid、value、code;
サンプリングするインデックス:
hs_json_indexコード;
このオプションがない場合、PRIMARYインデックスが使用されます。
操作は、データをサンプリングするための条件です。
hs_json_op "="; #=デフォルト
次の操作が可能です:=、<、<=、>、> =
デフォルトでは、ディレクティブがない場合、操作は「等しい」です
データ出力の制限:
hs_json_limit 10;
指令10がない場合。
データを選択する条件は、$ hs_request変数によって実装されます。 データは、URLの一部として割り当てることができます。
場所〜 / json /(。+)/ $ {
$ hs_request $ 1を設定します。
}
GETまたはCOOKIES変数のように:
location ~ /json {
set $hs_request $get_id;
}
例
最初の数文字で都市を選択する必要があります。 リストは10アイテムに制限されています。 都市は表から選択されます:
CREATE TABLE city {
名前VARCHAR ( 45 ) 、
id INT 、
PRIMARY ( id ) 、
KEY `name` ( ` name` ) 、
}
構成の次の部分を使用する場合:
location ~ /city/(.+)/${
..... //
hs_json_index name,
hs_json_fields name;
hs_json_op ">=";
set $hs_request $1;
}
これはクエリの類似物になります: SELECT * FROM city WHERE city_name > = '$ hs_request' LIMIT 10
リクエストはURLの最後の部分から取得されますたとえば、リクエストの場合:http:// myserver.com/city/san/データセットが生成されます:
[{"name":"San Amaro"},{"name":"San Andreas"},{"name":"San Andrs"} ... ]
間違い
- 500-間違った構成、プロトコル実装エラー、またはHS応答エラー
- 503-HSまたはI / Oエラーへの接続なし
制限事項
- 出力バッファの値は、#define BUFF_SIZEで規制された1K(1024)以下でなければなりません。 私のタスクにはもう必要ありません。
- 使用できるのは単純なインデックスのみです(1つの基準のみによるデータ取得)
- ロシア文字が実装されるまで(UTF-8)、近い将来に削除されます
バグレポートのすべてのバグ、PMの機能と要望、またはコメントについて