引入的urlAndResponse.txt文件如下:

/diy/abc "{\"name\":1}";
/diy/bcd "{\"name\":999}";
/logout/11 "123";
/diy/abc "{\"name\":1}";
/diy/bcd "{\"name\":999}";
/logout/11 "123";
/logout/22 "{\"name\":9199}";

他奶奶滴,下面内容坑了我几十分钟!!!
Json里的字段用双引号包起来,但是Nginx的配置需要把这段字符串用引号(单引号、双引号随意)包起来。由于Json自己使用了双引号,我们必须转义。但是人为转义极有可能导致最终的结果有问题。
所以!!!
所以!!! 
我们只允许使用单引号''包起来内容。示例如下:
/diy/abc '{"name":1}';
/diy/bcd '{"name":999}';
/logout/11 '123';

Nginx配置


http {
   

    map $request_uri $response {
	# 额外引入外部文件的内容
    	include /Users/zanglikun/Desktop/urlAndResponse.txt;
	/diy/ccc '123';
	default "";
    }


    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        access_log  /Users/zanglikun/Desktop/nginxlog.log  mylog;

        location / {
            root   html;
            index  index.html index.htm;

            if ($response = "") {
		return 404;
            }
            add_header Content-Type application/json;
            return 200 $response;

        }


    include servers/*;
}

说明:尽管这种方式实现了一个简单的固定API,但是有最大的问题是:如果请求体过大,每一行的JSON的格式化处理起来更加复杂!!!

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤