nginx 에서 그림 서버 탐색

2615 단어
이미지 서버 에 존재 하 는 수 요 는 핸드폰 화면 크기 와 dpi 에 따라 크기 가 큰 그림 을 동적 등 비례 로 확대 하여 화면 픽 셀 을 낭비 하지 않 고 그림 이 지 워 지 는 것 을 원 하지 않 는 목적 을 달성 하 는 것 이다.
nginx 에서 필요 한 것:
  • http_image_filter 모듈;
  • proxy_pass/proxy_store;

  • 예상 한 사용 방법 은 다음 과 같다.
  • 서버 에서 / webroot / imageresize 폴 더 아래 현재 프로젝트 폴 더 를 만 듭 니 다 (다음 글 은 aaa 로 대체 합 니 다).
  • aaa 에 동적 크기 조정 을 원 하 는 그림 파일 (jpg, png) 을 전송 하고 aaa 에 폴 더 를 전송 하지 마 십시오.
  • aa 의 권한 재 귀 를 777 로 설정 합 니 다.
  • 브 라 우 저 에 입력http://hostname/resizeFile/images/aaa/12.jpg_10x 10 은 aaa 에서 원 도 를 10x 10 으로 축소 하 는 그림 을 생 성 합 니 다.이후 이 주 소 를 방문 할 때마다 생 성 된 그림 을 얻 을 수 있 습 니 다.

  • 다음은 nginx 이미지 서버 부분의 코드 입 니 다.
    location ~ "^(/resizeFile/images)/([\w-]+)/(.*)\.(jpe?g|png)_(\d+)x(\d+)$"{
    
    
                             set $dir    $2;
                             set $width  $5;
                             set $height $6;
                             set $dimens "_$5x$6";
                             set $reImage_name "$3$dimens.$4";
                             set $image_name "$3.$4";
    
                             alias /webroot/image_resize/$dir/$reImage_name;
    
                            set $image_uri image_resize/$dir/$image_name?width=$width&height=$height;
    
                            if (-f $request_filename){
                      
                            }
    
                             if (!-f $request_filename) {
                     #               proxy_pass http://127.0.0.1:80/$image_uri;
                                    proxy_pass http://127.0.0.1/image_resize/$dir/$image_name?width=$width&height=$height;
                                     break;
                             }
    
                             proxy_store          /var/market/image_resize/$dir/$reImage_name;
                             proxy_store_access   user:rw  group:rw  all:r;
                             proxy_temp_path      /var/market/tempFIle;
                             proxy_set_header     Host $host;
    
    
    
                    }
    
                      location ^~ /image_resize/{
                             #access_log  logs/image_resize.log;
    
                             image_filter resize $arg_width $arg_height;
                             image_filter_jpeg_quality 75;
    
    
                     }
    
    

    주의사항:
  • 대부분의 그림 을 cdn 서버 에 전송 하 는 것 을 권장 합 니 다. 이미지 서버 의 목적 은 큰 사이즈 의 그림 을 크기 조정 하 는 것 입 니 다. 그렇지 않 으 면 이미지 서버 의 대역 폭 을 낭비 할 수 있 습 니 다.
  • 전단 을 사용 할 때 원본 그림 의 너비 와 높이 를 img 의 data 속성 에 저장 한 다음 dpi, 화면 크기, 페이지 크기 비율 에 따라 크기 조정 후의 너비 와 높이 를 확인 하 는 것 을 권장 합 니 다.

  • 코드 부분 은 [Nginx] nginx 를 사용 한 image 를 참고 하 였 습 니 다.filter_module 에서 그림 을 처리 합 니 다.

    좋은 웹페이지 즐겨찾기