nginx运用

docker 安装nginx

docker pull nginx
#创建挂载mul
mkdir -p /data/docker/nginx/{conf,log,html}
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /data/docker/nginx/
# 删除正在运行的nginx容器
docker rm -f nginx
# 生成容器
docker run -p 80:80 --name nginx -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/docker/nginx/log:/var/log/nginx -v /data/docker/nginx/html:/usr/share/nginx/html -d nginx:latest

http_image_filter_module模块使用

实现图片缩放,缓存

#图片缓存地址
mkdir -p /data/docker/cache/files

vi nginx.conf


#读取image_filter动态模块(必须!并且本项需要新版nginx docker官方镜像!本实例版本1.23.3)
load_module /etc/nginx/modules/ngx_http_image_filter_module.so;
#缓存配置
proxy_cache_path  cache/files keys_zone=files_cache:100m max_size=10g inactive=60m levels=1:2;
#配置项说明如下:
    # proxy_cache_path  #本地路径,用来设置Nginx缓存资源的存放地址
    #levels          #默认所有缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=2:2,Nginx为将要缓存的资源生成的key为f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后两位d0,以及倒数第2-3位36作为两级的子目录,也就是该资源最终会被缓存到cache/files/d0/36目录中
    #keys_zone        #在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key
    #max_size        #最大cache空间,如果不指定,会使用掉所有disk space,当达到配额后,会删除最少使用的cache文件
    #inactive        #未被访问文件在缓存中保留时间,本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件
    #use_temp_path   #如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝
    #proxy_cache     #启用proxy cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存。

参数判断

vi conf.d/default.conf
#使用参数判断是否使用缩略图
location ^~ /minioImg/  {
		#缓存配置也可配置到server进行全局配置
		proxy_cache files_cache;
        proxy_cache_valid  200 206 304 301 302 10d;
        #通过参数判断的所以key需要加上参数
        proxy_cache_key $uri?$query_string;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		set $j 0;
		if ( $query_string ~* (.*)h_([0-9]+),w_([0-9]+) ) {
        	set $h $2;
            set $w $3;
        	set $j 1;
         	}
		#如果没有使用缩略图就跳转到实际图片
		if ( $j = '0') {
			rewrite (.*)/minioImg/(.*)$ $1/minioImg1/$2 permanent;
		}
		image_filter resize  $w -;
        proxy_pass http://127.0.0.1:9000/;
        image_filter_buffer 100M;
        }
location ^~ /minioImg1/ {
		 proxy_pass http://127.0.0.1:9000/;
}

#生成容器
docker run -p 80:80 -p 81:81 --name nginx -v /data/docker/nginx/cache/files:/etc/nginx/cache/files -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/docker/nginx/log:/var/log/nginx -v /data/docker/nginx/html:/usr/share/nginx/html -d nginx:latest

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值