如何配置nginx以返回文本或json
嘻嘻发布于2022-12-22
最后更新于2022年12月8日
浏览有时,当您请求某些接口时,需要返回指定的文本字符串或json字符串。如果它是一个简单的逻辑或固定的字符串,您可以使用nginx快速实现它,因此不需要编写程序来响应请求。使用nginx可以减少服务器资源的使用,并提高响应性能。首先看看如何返回固定文本和json,它们在nginx服务器段中被配置为配置要拦截的位置项,配置示例如下:
固定文本:
location ~ ^/get_text {
default_type text/html;
return 200 'This is test text!';
}
固定JSON:
location ~ ^/get_json {
default_type application/json;
return 200 '{"status":"success","result":"nginx test json"}';
}
保存后重新加载配置将生效。此处注意:必须添加default_type,否则浏览器会将其作为无法识别的文件下载。
此外,您可以根据请求的URL返回不同的字符串。下面是一个示例:
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的位置块中,以输出正确的编码。
add_header Content-Type 'text/html; charset=utf-8';