习惯上只是简单把 Nginx 用作 WebServer,最近看了看它的插件,发现其实有很多玩法,特别是很多工作可以不再需要写代码了,通过安装配置插件就可以实现。本文以搭建一个文档服务器为例,演示一下怎样使用 Nginx 插件。
项目概述
本项目尝试用Nginx的多个模块搭建一个文档服务器,实现文件的上传和浏览。纯粹用Nginx实现是想讲文件上传作为一个独立的基础模块,如果其他业务模块需要文件管理功能,可以直接使用。
项目地址:https://github.com/javanan/tms-nginx-finder/
安装插件
名称 | 功能 | 指令 |
---|---|---|
echo-nginx-module | 快速响应内容 | echo |
nginx-upload-module | 上传文件 | upload_xxx |
njs | 用 Javascript 处理业务逻辑 | js_xxx |
set-misc-nginx-module | 在 nginx.conf 文件中处理变量 | set_unescape_uri |
redis2-nginx-module | redis 客户端 | redis2_xxx |
配置 Nginx
环境参数
环境变量 | 参数名 | 说明 |
---|---|---|
REDIS_KEY_UPLOAD_START_TIME | $redis_key_upload_start_time | Redis 中用于保存服务启动时间的 key |
REDIS_KEY_UPLOAD_COUNTER | $redis_key_upload_counter | Redis 中用于保存上传文件次数的 key |
REDIS_CHANNEL_UPLOAD | $redis_channel_upload | Redis 中接收上传文件信息的 channel |
LOCAL_UPLOAD_LOG | 本地保存上传文件日志,指定了记,不指定不记 |
需要在nginx.conf
文件中添加如下设置,用env
指令说明需要使用的环境变量,用js_set
指令创建变量并赋值(没有找到直接在配置文件中使用环境变量的方法)。