小知识:nginx配置返回文本或json的方法

有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快

先看返回固定的文本和json,都是在server中配置location拦截即可,配置示例如下:

固定文本:

?
1
2
3
4
location ~ ^/get_text {
default_type text/html;
return 200 This is text!;
}

固定json:

?
1
2
3
4
location ~ ^/get_json {
default_type application/json;
return 200 {“status”:”success”,”result”:”nginx json”};
}

保存后重新载入配置即可生效,注意:default_type必须要添加,否则浏览器会当成不识别的文件进行下载

另外也可以简单的根据请求的URL返回不同的字符串,示例如下:

?
1
2
3
4
5
6
location ~ ^/get_text/article/(.*)_(d+).html$ {
default_type text/html;
set $s $1;
set $d $2;
return 200 str:$s$d;
}

这样可以简单截取url中的字符串,当然也可以用(.*)匹配所有的,实际中根据不同需求定义即可

上面的就是一些简单的案例,在服务器环境中对于简单的处理,充分使用nginx可以省去一些编程工作

另外补充一下中文显示的问题,因为Linux下采用的是utf-8的字符编码,默认情况下我们的浏览器在服务器没有指定编码或者静态页面没有声明编码的情况下会以GBK的编码去渲染页面,这样默认情况下返回中文的话浏览器用gbk来解析utf-8编码,显然会出现乱码,这时要在nginx location块中主动添加header来输出正确编码,添加内容为: add_header Content-Type text/html; charset=utf-8; 这样浏览器就知道我们使用的是哪种编码了,如下图:

%小知识:nginx配置返回文本或json的方法-猿站网-插图

或者把add_header这行换成 charset utf-8; 也是可以的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/freeweb/p/5944894.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux内核增加HDF驱动子系统

2023-4-12 2:12:21

建站知识

小知识:一文说清Linux System Load

2023-4-12 2:20:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索