前言
自从上次安装完nginx我把服务器对外开发的端口都通过它来转发了,真香,最近要加一个获取最新版本号的功能,一开始还想写在服务器里,后来想想可不可以直接通过nginx配置呢?经过一番尝试果然是可以的,这样就不用单独编写代码来响应请求了,并且可以减少服务器资源占用,同时响应性能也非常快。
修改配置文件
还是在上次《记录一下第一次安装和配置Nginx》的配置文件 project.conf
基础上改吧,修改下面这一段
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字符串,可以直接写在配置文件中,比较方便:
location /version/en {
default_type application/json;
return 200 '{"code":0, "version":"1.6"}';
}
返回json文件内容
如果json内容较多,,是无法完全放到配置中的,因为 nginx
的 config buffer
有4kb大小限制,这时就可以将json内容放到文件中:
location /version/cn {
default_type application/json;
alias /data/update/cn_version.json;
}
综合到一起的配置文件就变成了:
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内容时如果数据比较多,可以保存到文件中直接在配置文件中引用文件名即可
好汉不提当年勇,如今落寞谁能懂,唯有鹤立鸡群中,任他必敬又必恭。