如何配置nginx以返回文本或json

有时,当您请求某些接口时,需要返回指定的文本字符串或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';
Nginx解决跨域资源问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.
标签:

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

ajax-loader