这个Nginx配置文件包含两个server块,主要完成了以下功能:
第一个server块:
server {
listen 80;
server_name 1.134.70.22;
location /static/ { # 匹配/static/目录
root /data/app/; # 使用/data/app/目录响应请求
}
location ~* ^.+\\.(zip|png|txt|img|pdf)$ { # 匹配指定后缀名的文件
root /data/app/;
if ($is_args ~* "download=1$") { # 如果请求包含download=1参数
add_header Content-Disposition "attachment"; # 设置Content-Disposition响应头
}
}
- 监听80端口,匹配服务器名1.134.70.22
- /static/目录的请求使用/data/app/目录响应
- 指定后缀名的文件使用/data/app/目录响应
- 如果请求包含download=1参数,设置Content-Disposition响应头
效果:当访问 http://1.134.70.22/static/1.txt 时,Nginx 将会去 /data/app/static/1.txt 中查找文件并返回给客户端。
第二个server块:
server {
location /download { # 匹配/download目录
alias /data/www/apks; # 创建/data/www/apks目录的别名
proxy_set_header Host $host; # 设置Host响应头
}
}
- 匹配/download目录,创建/data/www/apks目录的别名
- 设置Host响应头
所以,这个Nginx配置定义了两个server,实现了:
- 静态文件目录和下载文件的路由
- 文件下载的Content-Disposition响应头设置
- 设置Host响应头
效果:http://www.test.com/download/test-release.apk