nginx-Konfiguration:
Code kopieren Der Code lautet wie folgt:
# Angenommen, auf dem Server befindet sich eine Datei: abc.jpg, und auf das Originalbild kann über http://filefs.domain.com zugegriffen werden /file/abc.jpg. Tatsächlich speichern wir im Allgemeinen nur den Inhalt von „/file/abc.jpg“ in der Datenbank.
#Jetzt müssen wir erkennen, dass das Miniaturbild #abc.jpg.w320.jpg (w320, 320 Pixel Breite) automatisch vom Server über http://filefs.domain.com/file/abc.jpg.w320 generiert wird. jpg. und Bilddaten zurückgeben.
# Die folgenden zwei Bedingungen müssen erfüllt sein:
# 1. Wenn abc.jpg.w320.jpg vorhanden ist, wird das Bild nicht neu generiert.
# 2. Wenn es nicht vorhanden ist, werden die Bilddaten zurückgegeben und im gespeichert gleiche Anforderung Bilddateien an den Server.
server {
listen 80;
server_name filefs.domain.com;
root /var/www/http/filefs.domain.com;
location / {
index index.html index.htm;
}
Location ~ . (png|jpg|jpeg|gif)$ {
#Wenn die Datei nicht existiert, schreiben Sie sie in die Skriptdatei autoimg.php um, die das Bild generiert
PHP; p Expires Max; Ablaufzeit, Zugriffsprotokoll ausschalten
(-f $ request_filename) {
läuft max. ab
access_log off 00 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx /html;
}
Speicherort ~ autoimg.php$ {#Aus Sicherheitsgründen, Dateiserver, wird nur der Umfang dieser Skriptdatei übermittelt. Verarbeitet von PHP
fastcgi_pass 127.0.0.1:9000; durch durch Verwendung durch Verwendung durch Verwendung durch Verwendung durch Verwendung durch aus durch aus aus aus aus aus aus aus aus aus aus aus aus aus aus wann --
Code kopieren Der Code lautet wie folgt:
$file = $_server ['request_uri'];//Request 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 ];?
/ **略 * ein Schrumpfungsdiagramm erstellen
* @param source $ src
* @Param fehlte Breitband $ width
*
*/
Funktions-Miniaturansicht ($src, $des, $ width) {
using using using using using ' using using ' through using ' 's through out using ' s ' through ' s ‐ width) { -) {
$ im = ImageCreateFromgif ($ src); $im, 0, 0, 0, 0, $width, $height, $imageinfos [0], $imageinfos [1] );
Header ( 'content-type:image/jpg' ); null, 90); //Ausgabedateistream, 90 – Komprimierungsqualität, 100 stellt die höchste Qualität dar. } }
//Die Ausgabe fließt zu der Webseite, um sicherzustellen, dass die Bilddaten bei der ersten Anfrage wieder eingefügt werden
@file_put_contents ( $des, $content );//Datei speichern
}
?>
Rendering:
Das obige ist der detaillierte Inhalt vonWie arbeitet Nginx mit PHP zusammen, um die Funktion der Generierung von Echtzeit-Miniaturansichten zu realisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!