ngx_http_service_module
1.0.0
1.9.11 보다 낮지 않습니다json 형식입니다. cJSON 라이브러리는 기본적으로 컴파일됩니다. 비즈니스 개발자는 패킷을 구문 분석하는 데 사용할 수 있으며 물론 다른 json 구문 분석 라이브러리를 사용할 수도 있습니다 ( example/third_test 섹션 참조). # 这里以 nginx-1.24.0 为例, 也可以根据自己情况下载其他版本的 nginx 源码
wget http://nginx.org/download/nginx-1.24.0.tar.gztar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0 # 这里拉取到 nginx 源码的目录下, 也可以根据情况拉取到其他目录
git clone https://github.com/xukeawsl/ngx_http_service_module.git # 如果你将项目代码放在其他路径, 则需要修改这里的模块路径
./configure --add-module=ngx_http_service_module
make
make install module_path {
/ path/to /dir1 module1.so;
/ path/to /dir2 module2.so module3.so;
} module_dependency {
module1. so module2.so;
module3. so module2.so libjsoncpp.so;
} service {
module1. so srv_echo srv_datetime;
module2. so srv_sayHello;
module3. so srv_getSum;
}/test 처리되지 않습니다. http {
server {
sevice_mode on;
location /test {
service_mode off;
}
}
}ngx_http_service_interface.h 인터페이스 파일을 포함해야합니다. // 接口形如下面的函数
#include "ngx_http_service_interface.h"
#include "cJSON.h"
void srv_sayHello ( const ngx_request_t * rqst , ngx_request_t * resp )
{
// do something...
} // 请求结构只包含一个 const char * 指针指向 json 请求字符串
struct ngx_json_request_s {
const char * data ;
};
// 响应结构包含一个 char * 指针指向 json 响应字符串和一个回调函数用于释放响应字符串的内存
// 因为对于 c++ 实现的服务可能使用 new 来分配内存, 那就需要指定正确的内存释放方式
struct ngx_json_response_s {
char * data ;
void ( * release )( void * );
};POST 필요합니다Service-Name 으로 호출 할 서비스를 지정하십시오.Content-Type 유형 json 이어야합니다srv_sayHello 서비스에 전화하십시오 curl -X POST " http://localhost/service_test "
-H ' Content-Type: application/json '
-H ' Service-Name: srv_sayHello '
-d ' {"data": "xxxx"} '