nginx配置返回文本或json

有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快。 在server中配置location拦截即可,配置实例:
#固定文本
location ~ ^/get_text {
    default_type text/html;
    return 200 'This is text!';  
}
#固定json
location ~ ^/get_json {
    default_type application/json;
    return 200 '{"status":"success","result":"nginx json"}';
}
#根据请求的URL返回不同的字符串
location ~ ^/get_text/article/(.*)_(\d+).html$ {
    default_type text/html;
    set $s $1;
    set $d $2;
    return 200 str:$s$d;
}

#如果需要浏览器能正常显示,default_type必须要添加,否则浏览器会当成不识别的文件进行下载。
因为Linux下采用的是utf-8的字符编码,默认情况下我们的浏览器在服务器没有指定编码或者静态页面没有声明编码的情况下会以GBK的编码去渲染页面,这样默认情况下返回中文的话浏览器用gbk来解析utf-8编码,显然会出现乱码,这时要在nginx location块中主动添加header来输出正确编码,添加 add_header Content-Type 'text/html; charset=utf-8';或者charset utf-8;即可解决问题。
location ~ ^/get_text {
    default_type text/html;
    #add_header Content-Type 'text/html; charset=utf-8';
    #charset utf-8;
    return 200 'This is text!';  
}
附一个查询ip的方法:
curl blog.wanxiaohong.cn

评论

评论正在提交中...请稍后
评论提交成功...