Nginx返回静态的json字符串

前言

自从上次安装完nginx我把服务器对外开发的端口都通过它来转发了,真香,最近要加一个获取最新版本号的功能,一开始还想写在服务器里,后来想想可不可以直接通过nginx配置呢?经过一番尝试果然是可以的,这样就不用单独编写代码来响应请求了,并且可以减少服务器资源占用,同时响应性能也非常快。

修改配置文件

还是在上次《记录一下第一次安装和配置Nginx》的配置文件 project.conf基础上改吧,修改下面这一段

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 4100;
server_name localhost;

location / {

proxy_pass http://login_entrance;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

返回简单json字符串

如果是简单的json字符串,可以直接写在配置文件中,比较方便:

1
2
3
4
location /version/en {
default_type application/json;
return 200 '{"code":0, "version":"1.6"}';
}

返回json文件内容

如果json内容较多,,是无法完全放到配置中的,因为 nginxconfig buffer 有4kb大小限制,这时就可以将json内容放到文件中:

1
2
3
4
location /version/cn {
default_type application/json;
alias /data/update/cn_version.json;
}

综合到一起的配置文件就变成了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
server {
listen 4100;
server_name localhost;

location /version/en {
default_type application/json;
return 200 '{"code":0, "version":"1.6"}';
}

location /version/cn {
default_type application/json;
alias /data/update/cn_version.json;
}

location / {

proxy_pass http://login_entrance;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

总结

  • 通过nginx可以直接配置返回一些静态文本或json信息,这样不用写额外的处理逻辑,同时效率比较高
  • 在返回json内容时如果数据比较多,可以保存到文件中直接在配置文件中引用文件名即可
==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

好汉不提当年勇,如今落寞谁能懂,唯有鹤立鸡群中,任他必敬又必恭。

2023-4-24 22:40:16

Albert Shi wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客