zoukankan      html  css  js  c++  java
  • nginx配置返回文本或json

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

    如果要返回固定的文本和json,都是在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"}';
    }
    

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

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

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

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

    location ~ ^/get_text {
        default_type text/html;
    
        add_header Content-Type 'text/html;charset=utf-8'
        return 200 'This is text!';  
    }
    

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

  • 相关阅读:
    MySQL 对于千万级的大表要怎么优化?
    随便写的一些docker使用操作命令
    零基础学python大概要多久?我用了30天
    普通人学python有意义吗?意义重大
    华为私有云组件
    Mysql 调优(二)分析思路
    MySQL 调优(一)调优原则
    shell脚本获取当前时间,分钟之前时间、小时之前时间和天之前时间
    java_windows环境变量自动设置脚本
    plsql中文乱码问题解决方案
  • 原文地址:https://www.cnblogs.com/senlinyang/p/10249421.html
Copyright © 2011-2022 走看看