需求就是缓存android的软件包,后缀名是apk。话不多说,直接上设置,供参考:
a-->nginx.conf
user www www;
worker_processes 8;
error_log /data/logs/nginx_error.log crit;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 204800;
events
{
use epoll;
worker_connections 204800;
}
http
{
include mime.types;
#apk 文件范例
#default_type application/vnd.android.package-archive;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
client_body_buffer_size 512k;
#跟后端处事器毗连的超时时间_提倡握手等待响应超时时间
proxy_connect_timeout 600;
#毗连乐成后_等待后端处事器响应的时间_其实已经进入后端的列队之中等待处理惩罚
proxy_read_timeout 600;
#后端处事器数据回传时间_就是在规按时间内后端处事器必需传完所有数据
proxy_send_timeout 600;
#署理请求缓存区_这个缓存区间会生存用户的头信息以供Nginx举举措则处理惩罚_一般只要能生存下头信息即可
proxy_buffer_size 16k;
#同上 汇报Nginx生存单个用的几个Buffer最大用多大空间
proxy_buffers 4 64k;
#假如系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
proxy_busy_buffers_size 128k;
#proxy缓存姑且文件的巨细
proxy_temp_file_write_size 128k;
gzip on;
gzip_proxied expired no-cache no-store private auth;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_disable "MSIE [1-6].";
gzip_vary on;
#log_format access '$remote_addr - $remote_user [$time_local] '
# '"$request" $status $body_bytes_sent '
# '"$http_referer" "$http_user_agent" '
# '$host $request_time $http_x_forwarded_for';
#access_log /data/logs/http.a.log;
#error_log /data/logs/http.e.log;
include vhosts/cache.peiqiang.net.conf;
}
upstream source_site {
server 192.168.1.1:80 weight=7 max_fails=2 fail_timeout=30s;
server 192.168.1.2:80 weight=4 max_fails=2 fail_timeout=30s;
}
b-->cache.peiqiang.net.conf
#用于指定当地目次来缓冲较大的署理请求
proxy_temp_path /data/soft/temp;
#配置web缓存区名为cache_one,内存缓存空间巨细为12000M,自动排除高出15天没有被会见过的缓存数据,硬盘缓存空间巨细200g
proxy_cache_path /data/soft/cache levels=1:2 keys_zone=cache_one:12000m inactive=15d max_size=200g;
server {
listen 80;
server_name cache.peiqiang.net;
access_log /data/logs/a.log;
error_log /data/logs/e.log notice;
# PHP Scripts is NOT allowed within this site!
location ~* .(php|php5|jsp|asp|aspx)$ {
deny all;
}
location / {
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_cache cache_one;
proxy_cache_valid 200 304 12h;
proxy_cache_key $uri$is_args$args;
#反向署理,会见后端内容源处事器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://source_site;
}
location ~* .*.(apk)$ {
error_page 302 404 = @fallback;
#假如后端的处事器返回500、502、503、504执行超时等错误、自动将请求转发到upstream负载平衡池中的另一台处事器,实现妨碍转移
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
#利用web缓存区cache_one
proxy_cache cache_one;
#对差异的HTTP状态码缓存配置差异的缓存时间
proxy_cache_valid 200 304 12h;
#配置Web缓存的Key值,Nginx按照Key值md5哈希存储缓存,这里按照"域名、URI、参数"组合成key
proxy_cache_key $uri$is_args$args;
#反向署理,会见后端内容源处事器
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://source_site;
expires 1d;
}
location @fallback {
rewrite ^ $scheme://apke.peiqiang.net$uri redirect;
expires -1;
}
}