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; }
这样可以简单截取url中的字符串,当然也可以用(.*)匹配所有的,实际中根据不同需求定义即可
上面的就是一些简单的案例,在服务器环境中对于简单的处理,充分使用nginx可以省去一些编程工作
另外补充一下中文显示的问题,因为Linux下采用的是utf-8的字符编码,默认情况下我们的浏览器在服务器没有指定编码或者静态页面没有声明编码的情况下会以GBK的编码去渲染页面,这样默认情况下返回中文的话浏览器用gbk来解析utf-8编码,显然会出现乱码,这时要在nginx location块中主动添加header来输出正确编码,添加内容为: add_header Content-Type 'text/html; charset=utf-8'
; 这样浏览器就知道我们使用的是哪种编码了,如下图:
或者把add_header这行换成 charset utf-8
; 也是可以的
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Nginx直接返回Json的实例
如下所示: server { listen 80; server_name www.abc.com; large_client_header_buffers 4 16k; client_max_body_size 300m; client_body_buffer_size 128k; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 64k; proxy_buf
-
Nginx 日志改成 JSON 格式的方法
Nginx 日志默认为普通文本的格式,例如,下面是 Nginx 的一行访问日志: 10.88.122.105 - - [02/Dec/2017:09:15:04 +0800] "GET /js/pagination.js HTTP/1.1" 304 0 "http://10.88.105.20:8063/stockrecommand.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW6
-
nginx中用JSON格式记录日志的配置示例
nginx的日志配置可以参见<nginx日志配置指令详解>一文.如果要想以json格式记录nginx日志以便logstash分析,该如何指定日志格式呢?可以按照下面的格式来实现. 定义nginx日志格式: 复制代码 代码如下: log_format logstash_json '{ "@timestamp": "$time_local", ' '"@fields": { '
-
nginx返回json或者文本格式的方法
用nginx怎么返回json格式或者文本格式的数据?其实很简单,如下代码: 1.返回文本格式 location ~ ^/get_text { default_type text/html; return 200 'hello world!'; } 2.返回json格式 location ~ ^/get_json { default_type application/json; return 200 '{"status":"success","result&
-
nginx配置返回文本或json的方法
有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快 先看返回固定的文本和json,都是在server中配置location拦截即可,配置示例如下: 固定文本: location ~ ^/get_text { default_type text/html; return 200 'This is text!'; } 固定json: loc
-
修改Nginx配置返回指定content-type的方法
目录 一.我们遇到了什么问题? 二.解决方法 总结 一.我们遇到了什么问题? 今天前端的同学向我请教了一个Nginx服务配置的问题.我作为组里的底层开发,当然是对此类问题还是有信心的.因为我私下里对Nginx也是学习了一点,再不济通过丰富的google经验,解决此类配置问题也是不在话下的O(∩_∩)O.但是问题并没有我想象的那么简单,花费了我不少时间( ╯□╰ ).不多废话了,直接上需求. Nginx配置中一般根据conf/mime.types文件中配置来根据文件扩展名(文件扩展名对大小写不敏感
-
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
Html5 提供了一个新的 Range 标签来实现文件的分段下载.在Node.JS中可以配置这个标签来实现文件的分段下载. Header标签 请求 Request Header: 下载 3744 以后的文件内容 range: bytes=3744- 返回 Response Header: 文件总长 15522643 个字节 accept-ranges': 'bytes' content-range': 'bytes */15522643' Nginx配置 首先要配置Nginx支持range标签返
-
Springboot配置返回日期格式化五种方法详解
目录 格式化全局时间字段 1.前端时间格式化(不做无情人) 2.SimpleDateFormat格式化(不推荐) 3.DateTimeFormatter格式化(不推荐) 4.全局时间格式化(推荐) 实现原理分析 5.部分时间格式化(推荐) 总结 应急就这样 格式化全局时间字段 在yml中添加如下配置: spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 或者 spring: jackson: ## 格式为yyyy-MM-dd HH:mm:ss date-
-
nginx 配置跨域失效修复的方法示例
nginx 配置跨域不生效 如下配置 server { listen 80; server_name localhost; # 接口转发 location /api/ { # 允许请求地址跨域 * 做为通配符 add_header 'Access-Control-Allow-Origin' '*'; # 设置请求方法跨域 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; # 设置是否允许 co
-
Nginx配置多个HTTPS域名的方法
最近在玩微信小程序,手头有: 一台云服务器:CentOS 7 多个一级域名 开发测试过程中,因为某些原因,想要让手头的A.B域名同时指向云服务器的443端口,支持HTTPS. Nginx支持TLS协议的SNI扩展(同一个IP上可以支持多个不同证书的域名),只需要重新安装Nginx,使其支持TLS即可. 安装Nginx [root]# wget http://nginx.org/download/nginx-1.12.0.tar.gz [root]# tar zxvf nginx-1.12.0.t
-
Nginx配置SSL自签名证书的方法
生成自签名SSL证书 生成RSA密钥(过程需要设置一个密码,记住这个密码) $ openssl genrsa -des3 -out domain.key 1024 拷贝一个不需要输入密码的密钥文件 $ openssl rsa -in domain.key -out domain_nopass.key 生成一个证书请求 $ openssl req -new -key domain.key -out domain.csr 这里会提示输入国家,地区组织,email等信息.最重要的一个是"common
-
nginx配置伪静态和适配客户端的方法步骤
后端用的thinkphp3.2.3框架,如果您是其他的语言或者,注意适当修改下 server { listen 80; server_name www.morgen.club; #charset koi8-r; #access_log logs/host.access.log main; 网站根目录 location / { root html; index index.html index.htm; #设置访问设备 set $source_device 'index'; #判断为手机客户端或i
-
Nginx 运维之域名验证的方法示例
各公众平台在配置接口域名时会验证开发者对域名的配置权, 生成随机的文本及字符串,让放置在域名根目录可以通过域名直接访问到即通过验证. 示例为验证域名 abc.com 可以通过根路由访问 6CysNYj8Hb.txt 响应体为字符串 01df2ddab4774ba2676a5563ccb79ffa. $ curl https://abc.com/6CysNYj8Hb.txt 01df2ddab4774ba2676a5563ccb79ffa 方案一 配置有 root 的 server,直接把随机文档
-
如何将 Nginx 配置为Web服务器的方法
阅读之前,建议先阅读初识 Nginx. 之后,我们来了解一下 Nginx 配置. 抽象来说,将 Nginx 配置为 Web 服务器就是定义处理哪些 URLS 和如何处理这些URLS 对应的请求.具体来说,就是定义一些虚拟服务器(Virtual Servers),控制具有特定 IP 和域名的请求. 更具体的来说, Nginx 通过定义一系列 locations 来控制对 URIS 的选择.每一个 location 定义了对映射到自己的请求的处理场景:返回一个文件或者代理请求,或者根据不同的错误代码
随机推荐
- js正则表达式之replace函数用法
- Python中的Matplotlib模块入门教程
- 使用JQ完成表格隔行换色的简单实例
- 浅谈java常量池
- asp.net中上传图片文件实现防伪图片水印并写入数据库
- 说说PHP的autoLoad自动加载机制
- Android 限制edittext 整数和小数位数 过滤器(详解)
- Android保持屏幕常亮
- jsp 页面显示的一些用法
- 图文详解JAVA实现哈夫曼树
- JS异步加载的三种实现方式
- js不是基础的基础
- 根据鼠标的位置动态的控制层的位置
- fckeditor 获取文本框值的实现代码
- java对象拷贝详解及实例
- Android adb.exe程序启动不起来 具体解决方法
- Kotlin基础教程之面向对象
- Android 图片存储到指定路径和相册的方法
- PHP之密码加密的几种方式
- 详解webpack解惑:require的五种用法