Nginx 返回自定义 text 或 json

2023-10-26

叙述

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

解决方案

固定文本:

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; 也是可以的,这样浏览器就知道我们使用的是哪种编码了,如下图:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nginx 返回自定义 text 或 json 的相关文章

  • 为从 nginx 反向代理转发的请求添加唯一 id

    我们运行 nginx 作为反向代理 将请求转发到运行 Compojure 的 Clojure 应用程序 Compojure 是一个封装 Jetty 的库 为我们的应用程序提供服务 Web 请求的能力 目前 我们捕获 nginx 和 Cloj
  • 使用流式 JSON 输出构建简单的 Nodejs API

    我正在尝试构建一个简单的基于 Node js 的流 API 我想做的就是当我点击服务器 URL 时 输出应该流式传输一组测试数据 JSON 如 Twitter 流 API var app require express var server
  • 使用 Jackson 对 List 进行自定义反序列化

    我正在尝试编写一个自定义反序列化器 以便减少从其他地方收到的大量数据 我从反序列化器返回自定义对象列表 我的问题是 如果这是我的自定义反序列化器 我该怎么做 public class MyCustomDeserializer extends
  • highcharts 弄错了我的时间

    highcharts 弄错了我的时间 我来自委内瑞拉 以防万一 我正在做一个实时系统 我可以在数据库中获取时间 秒和毫秒 例如 10 39 09 2 我应用 strtotime time 然后通过 json 发送到图表 在我的高图表中 我进
  • 查询 Firestore 中的特定日期

    我正在尝试查询 Firestore 中的指定日期 到目前为止我已经尝试过这段代码 let ref db collection schools doc DglhflywuybkOuCq7tGW let start new Date 2018
  • 如何查看大 JSON 对象是否包含值?

    我正在使用 PHP 对大量多维事件数组进行 json 编码 所以我得到如下内容 var ents 7 event id 7 nn The Whisky Drifters nn url the whisky drifters venue Th
  • PHP 计算 JSON 请求中返回的项目数?

    我正在寻找一种方法来计算在搜索数据库时得到的这些 JSON 字符串中返回的项目数 以 PHP 表示 请原谅我 因为我对这一切一无所知 有人告诉我 因为 JSON 版本中没有返回计数 就像此数据库中的 XML 版本一样 我必须使用循环来计算结
  • 为什么要使用 Node.js 安装服务器(Nginx、Apache...)? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 Node js Express Web 框架下需要 apache https stackoverflow com questions 9287747 why do we need apache
  • 如何使用 ServiceStack JsonSerializer 序列化 ExpandoObject?

    是否可以让 ServiceStack JsonSerializer 将 ExpandoObject 序列化为平面对象而不是字典 大致类似于这样 x xvalue y Date 1313966045485 我正在尝试比较 JSON 序列化Ex
  • 使用 Struts 2.2.x 的简单 JSON 示例?

    我在获取 JSON 结果时遇到问题支柱2 2 1 1 http struts apache org 2 2 1 1 index html 有没有人有一个简单的工作示例 可以使用以下命令将 JSON 结果返回到 JSP支柱2 2 1 1并准备
  • Python 替换嵌套 JSON 中的 None 值

    我一直在尝试替换下面 JSON 字典中的 None 值 我将如何遍历这个 json 并将 None 值替换为空字符串 我很难理解如何遍历嵌套 json 如果有人能帮我解决这个问题 我会很高兴 下面的嵌套 json 示例 或者在 python
  • 检查 Web 服务中的 Json

    我的 json 有问题 我希望我的 Json 看起来像 data phoneId 1 token APA91bF2tN5g1TtULFE5tysRMAarygjX4w9hjTGCqT3SL PwiMV6aqTtkV3lpqLkc7msVfE
  • 在 Visual Studio 中为“将 JSON 粘贴为类”配置类和成员名称大小写(lowerCamelCase 与 UpperCamelCase)

    考虑这个 JSON firstName John lastName Doe homeAddress streetAddress 123 Main St city Boston state MA postalCode 02110 employ
  • 将 C# 字符串数组序列化为 JSON 数组

    我的 Layout cshtml 文件中有以下代码 我的想法是 在我的javascript代码中填写了一些有关安全性的项目 LoggedIn和用户名显然没有问题 但是角色在javascript中的放置方式是错误的 Roles 只是一个 st
  • 在Vue.js中,如何选择组件的节点元素? $refs 可能吗?

    因为我想选择组件的节点元素 所以我想也许我可以使用 refs Parent
  • 使用 libGDX 写入 Json

    我是 Json 和 libGDX 的新手 但我创建了一个简单的游戏 我想将玩家姓名及其分数存储在 Json 文件中 有没有办法做到这一点 我想创建一个 Json 文件Gdx files localStorage如果它不存在 如果存在 则向其
  • 在 REST WCF 中读取 HttpRequest 正文

    我在 net 4 中运行了一个 REST WCF 服务 并且我已经测试了它正在工作并接受我对其发出的 HttpRequest 的 Web 服务 但我在尝试访问 Web 服务中的 HttpRequest 主体时遇到了问题 我尝试使用 Fidd
  • nginx工作进程如何共享“监听套接字”

    This http aosabook org en nginx html http aosabook org en nginx html说 工作进程接受来自共享 监听 套接字的新请求 并在每个进程内执行高效的运行循环 我查看了代码 但不明白
  • 同时使用 Vuetify 和 Vue-i18n 翻译

    我正在使用 Vuetify 想要添加我自己的按钮翻译 并使用 Vuetify 提供的翻译 我目前的 Vuetify 配置文件设置如下 import Vue from vue import Vuetify from vuetify impor
  • 使用 PHP 将数据添加到 json

    我使用 json decode 创建一个 json 对象 在浏览了一些元素之后 我想向其中添加子元素 我该怎么做呢 取决于您传递给的选项json decode http php net manual en function json dec

随机推荐

  • 读书笔记 摘自:《分享经济的爆发》

    读书笔记 摘自 分享经济的爆发 作者 印 阿鲁 萨丹拉彻 赞 誉 创新的实验性与监管的连续性本身存在矛盾 监管者通常需要通过更新现有法律体系使其与创新性服务相适应 否则就会阻碍创新 将分享经济看作市场经济和礼物经济的 过渡态 资本主义和社会
  • 20171010离线赛总结

    题解 第一题 字符连通块 这道题还是比较好想的 首先把每个连通块标记出来 并用第一次扫到的点标记为这个连通块的父节点 接下来要做的就是把一个 周围的连通块连通起来 不过要注意一点 在连通标记的时候不要用memset memset的复杂度是m
  • Windows端CUDA11.3+CUDNN+pytorch环境搭建

    1 显卡驱动的安装 最近 在学习pytorch深度学习 遇到很多的坑 环境配置也出现过问题 忍不住和大家进行分享 现在把环境搭建过程分享给大家 1 1 查看自己的显卡 具体操作 我的电脑 属性 设备管理器 显示适配器 1 2 驱动的下载 安
  • (c语言实现)算法笔记之bfs及pta习题

    目录 一 bfs 广度优先搜索 的定义 二 bfs 广度优先搜索 的应用 三 题型训练 1 奇怪的电梯 2 寻宝 3 龙舌兰酒吧 四 总结 一 bfs 广度优先搜索 的定义 BFS 全称是 Breadth First Search 中文名是
  • 基于XMPP协议的Android即时通信系

    以前做过一个基于XMPP协议的聊天社交软件 总结了一下 发出来 设计基于开源的XMPP即时通信协议 采用C S体系结构 通过GPRS无线网络用TCP协议连接到服务器 以架设开源的Openfn e服务器作为即时通讯平台 系统主要由以下部分组成
  • react-router 里的 Link 标签和 a 标签有什么区别?

    相同点 从最终渲染的 DOM 来看 这两者都是链接 都是 a 标签 区别 是 react router 里实现路由跳转的链接 一般配合 a
  • 【代码记录】pytorch推理及与onnx推理精度对比

    1 pytorch推理 import cv2 import sys import numpy as np import torch os from torch import nn import torchvision models as m
  • 子串/子段问题总结

    1 一般子串问题 求一个串中满足某种条件的子串 1 如果所求子串的条件是一个值 比如sum 则考虑子段问题 注意这样一个性质 子段 前缀差 子段和 前缀和的差 vector
  • 4.3 链码的其它操作:实现对链码的打包升级

    目标 实现如何对链码打包签名 链码升级的实现 任务实现 链码部署除了正常的安装 实例化操作步骤之外 还有一种部署方式 即先将链码进行打包 然后对已打包的文件进行签名 最后再进行安装与实例的操作 4 3 1 链码打包及签名 4 3 1 1 打
  • final-期末大作业-制作AR射箭小游戏(Unity AR配置详细教程)

    要求 大作业要求 制作一款特定技术应用小游戏 并提交技术报告 内容 请参考以下技术主题 但不限于这些主题 运用手机拍若干全景图 贴到天空盒或球型天空 做一个简单校园漫游功能 粒子系统效果制作 必须带一个控制组件 控制粒子呈现效果 UI系统制
  • mysql 扁平结构设计_数组扁平化

    TOC 简介 数组的扁平化 就是将一个嵌套多层的数组 array 嵌套可以是任何层数 转换为只有一层的数组 举个例子 假设有个名为 flatten 的函数可以做到数组扁平化 效果就会如下 js var arr 1 2 3 4 console
  • Pycharm常用快捷键大全,初学友好,不怕记不住

    初来乍到 我是爱摸鱼的芝士呐 一 pycharm的简单介绍 字多可以跳过 pycharm是全宇宙最适合Python的编辑器 没有之一 个人见解勿杠杠就是你对 虽然看似全是英文 对于英语不好的小伙伴不友好 但是 不管是代码还是菜单栏 都有翻译
  • 照片转换为超声图像(MATLAB仿真)

    照片转换为超声图像 MATLAB 仿真实现 任意选取一张照片转换为超声图像 1 选取一张照片 2 将照片转换为散射点 3 进行超声成像仿真
  • Echarts formatter

    提示框浮层内容格式器 支持字符串模板和回调函数两种形式 回调函数 params Object Array ticket string callback ticket string html string gt string HTMLElem
  • 威纶通定时循环操作宏_威纶通触摸屏宏指令的使用

    工控多年的公众号运营者 我经常分享原创技术内容 内容涉及到工业多个方面 分享新知识带你一起进步 今天看到一个例程 想再写一下威纶通触摸屏宏指令的使用 之前有分享过一篇有关威纶通关于宏指令使用的文章 那篇文章的宏只用过 GetData 指令
  • iis多进程下的全局变量_python下多线程的限制以及多进程中传递参数的方式!不来瞅瞅?...

    欢迎各位小哥哥小姐姐阅读本的文章 对大家学习有帮助 请点赞加关注哦 您的点赞和关注将是我持续更新的动力呢 v 有不懂的问题可以私聊我哦 python下多线程的限制以及多进程中传递参数的方式 python多线程有个全局解释器锁 global
  • C#桌面程序无法调试以及无法查看变量的解决办法

    作者 朱金灿 来源 clever101的专栏 为什么大多数人学不会人工智能编程 gt gt gt 一 问题描述 最近在调试一个C 桌面程序 总是无法进入调试状态 后来能进入调试状态了 却无法查看程序变量的值 二 问题解决过程 经过搜索网上资
  • python 中wheel 安装_python中wheel的用法整理

    Python的第一个主流打包格式是 egg文件 现在大家庭中又有了一个叫做Wheel whl 的新成员 wheel 被设计成包含PEP 376兼容安装 一种非常接近于磁盘上的格式 的所有文件 在本文中 我们将学习如何创建一个wheel以及如
  • linux 命令行报bash command not found的解决办法

    命令行报bash command not found的解决办法 几乎所有命令 命令行输入命令执行后报 bash command not found 这是由于系统PATH设置问题 PATH没有设置对 系统就无法找到精确命令了 1 在命令行中输
  • Nginx 返回自定义 text 或 json

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