问题背景
nginx 作为广泛使用的 web 服务,同时整体采用模块化设计是Nginx的一个重大特点。当我们需求我们访问文件需要响应文件的 md5 值作为http的一个响应头部,需要如何进行配置。
解决方案
目前 nginx 没有提供文件 MD5 值的模块,采用比较流行的方式是使用第三方文件 MD5 模块。 使用的第三方模块地址为:
nginx 编译
使用第三方模块,我们需要对nginx 进行重新编译并携带对应的模块。
下载nginx 及file-md5 插件
cd /usr/local/src
wget https://github.com/cfsego/file-md5/archive/master.zip -O file-md5-master.zip
unzip file-md5-master.zip
编译nginx 1.18.0
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
# 编译 file-md5 模块
./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../file-md5-master
make & make isntall
添加 Content-MD5 响应
vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.html index.htm;
add_header Content-MD5 $file_md5;
```
`
### 测试结果
```bash
# 启动nginx
./usr/local/nginx/sbin/nginx
```
通过curl进行测试,Content-MD5 可以正常被响应。md5值也与本地测算相同。
![图片](https://lf6-volc-editor.volccdn.com/obj/volcfe/sop-public/upload_88abe17c69c2a83f0bbc3ebb7f22333c.png)
**如果您有其他问题,欢迎您联系火山引擎**[技术支持服务](https://console.volcengine.com/ticket/createTicketV2/)