>운영 및 유지보수 >엔진스 >Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?

Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?

WBOY
WBOY앞으로
2023-05-15 18:37:06981검색

nginx 구성:

코드 복사 코드는 다음과 같습니다.

# 서버에 abc.jpg 파일이 있고 http://filefs.domain.com을 통해 원본 이미지에 액세스할 수 있다고 가정합니다. /파일/abc.jpg. 실제로 일반적으로 데이터베이스에는 "/file/abc.jpg"의 내용만 저장합니다.
#이제, http://filefs.domain.com/file/abc.jpg.w320을 통해 서버에서 썸네일 #abc.jpg.w320.jpg(w320, 320px 너비)가 자동으로 생성된다는 점을 알아야 합니다. jpg. 이미지 데이터를 반환합니다.
# 다음 두 가지 조건이 충족되어야 합니다.
# 1. abc.jpg.w320.jpg가 있으면 이미지가 다시 생성되지 않습니다.
# 2. 존재하지 않으면 이미지 데이터가 반환되어 다음 폴더에 저장됩니다. 동일한 이미지 파일을 서버에 요청합니다.
서버 {
수신 80;
server_name filefs.domain.com;
루트 /var/www/http/filefs.domain.com;
위치 / {
index index.html index.htm;
}
위치 ~ .( png|jpg|jpeg|gif)$ {
          #파일이 없으면 그림을 생성하는 스크립트 파일 autoimg.php에 다시 작성하세요. >                             PHP; Expires Max
}
#파일이 존재하는 경우 만료를 설정합니다. 시간이 지나면 액세스 로그를 닫습니다.

(-f $ request_filename) {
만료 최대
access_log off 00 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html ;
}
위치 ~ autoimg.php$ {#보안상의 이유로 파일 서버에서는 이 스크립트 파일의 범위만 제출합니다. PHP로 처리
                fastcgi_pass   127.0.0.1:9000;                                                            통해 사용 통해 사용 사용 통해 사용 사용 통해   아웃 out out out out out out out out out out out out out of  when to  -                      /usr/local/nginx/conf/fastcgi_params;
}
}



이미지 파일을 생성하는 PHP 코드:


코드 복사 코드는 다음과 같습니다

$file = $_server ['request_uri'];//요청 string/file/abc.jpg.w320.jpg
$desfile = $_server ['document_root'] //대상 대상; path/var/www/http/file/abc.jpg.w320.jpg
$dirname = dirname ($desfile) . "/";
$filename = basename ($desfile);
if (preg_match ( "/( [ ^.]+.(png|jpg|jpeg|gif)).w([d]+).(jpg)/i", $filename, $m )) {
   $srcfile = $dirname . $m [ 1 ];
$width = $m [3]; //출력 파일 너비 일치
320
320
( $srcfile )) { //파일이 존재하지 않습니다
              썸네일 ( $srcfile, $desfile, $width  ) ; width) {b ob_start (); // 출력 스트림 차단 시작
$ ImageInfos = getimagesize ($ src);
$ ext = StrTolower (Pathinfo ($ SRC, 4)) {
              $im = imagecreatefromgif ( $src);
                                                                                     { ~ $dst_img = imagecreatetruecolor ( $width ( dst_img, 0, 0, $trans_colour );
       
                         $dst _img, $im, 0, 0, 0, 0, $width, $height, $imageinfos [0], $imageinfos [1] );
                              헤더( 'content-type:image/jpg' );
imagejpeg($dst_img, null, 90); 스트림, 90--압축 품질, 100은 최고 품질을 나타냅니다. ​​​} }
8                                                                                                   //출력 흐름 웹 페이지로 이동하여 첫 번째 요청에 이미지 데이터가 다시 삽입되도록 합니다
            @file_put_contents ($des, $content);//파일 저장
     }
?>

렌더링:

Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?

Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?

위 내용은 Nginx는 실시간 썸네일 생성 기능을 실현하기 위해 PHP와 어떻게 협력합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제