NginxとPHPはどのように連携してリアルタイムサムネイル生成機能を実現しているのでしょうか?
nginx 設定:
コードをコピーします。 コードは次のとおりです。
# サーバー上にファイル abc.jpg (http 経由) があるとします。 //filefs.domain .com/file/abc.jpg から元の画像にアクセスできます。実際、通常、データベースには「/file/abc.jpg」の内容のみが保存されます。
#ここで、サーバーによって http://filefs.domain.com/file/abc.jpg.w320 を通じて #abc.jpg.w320.jpg (w320、幅 320px) が自動生成されるようにする必要があります。 jpg スケッチマップ。画像データを返します。
# 次の 2 つの条件を満たす必要があります。
# 1. abc.jpg.w320.jpg が存在する場合、画像は再生成されません
# 2. 存在しない場合、同じリクエスト内で, 画像データを返却し、画像ファイルをサーバーに保存します。
サーバー {
listen 80;
サーバー名 filefs.domain.com;
ルート /var/www/http/filefs.domain.com;
場所 / {
Index Index.html Index.htm;
}
location ~ \.(png|jpg|jpeg|gif)$ {
} #ファイルが存在しない場合は、 image autoimg.php
if (!-f $request_filename) {
rewrite ^/.*$ /autoimg.php;
期限切れ max;
}
#ファイルが存在する場合は、設定します有効期限 時間、アクセス ログをオフにする
if (-f $request_filename) {
期限切れ max;
access_log off;
}
}
error_page 500 502 503 504 / 50x . html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ autoimg.php$ {#セキュリティ上の考慮事項、ファイルサーバー, このスクリプト ファイルの範囲のみが処理のために php に送信されます
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param script_filename /var/www/http/filefs.domain.com$ fastcgi_script_name;
画像ファイルを生成するための /usr/local/nginx/conf/fastcgi_params;
}
}
#php コードを含めます:
以下のようにコードをコピーします:
$file = $_server ['request_uri'];//リクエスト文字列/file/abc.jpg.w320.jpg
$desfile = $_server ['document_root'] . $ file; //ターゲットの保存先パス/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]; //出力ファイルの幅と一致させる
if (in_array ( $width, array ( // 幅 202 および 320 のファイルのみ生成します
202,
320
)) &&&FILE_EXISTS ($ SRCFILE) {// ファイルは存在しません
サムネイル ($ SRCFILE, $ Desfile, $ Desfile) , $width );
}
}
/**
* サムネイルの生成
*
* @param source $src
* @param スケーリングされた帯域幅 $width
*
*/
関数サムネイル($src, $des, $width) {
ob_start (); / /出力ストリームをインターセプトし始めます、0、0、0、127);
$ imageInfos [0]、$ imageInfos [1]);
、90 - 圧縮品質、100は最高品質を表します。
@imagedestroy ( $content = ob_get_contents ();//出力ストリームを取得する
ob_end_flush ();//ストリームを出力するWeb ページに送信し、画像データが最初のリクエストに戻されるようにします
@file_put_contents ( $des, $content );// ファイルを保存します
}
?>
レンダリング:
以上がNginxとPHPはどのように連携してリアルタイムサムネイル生成機能を実現しているのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

nginxバージョンを照会できるメソッドは次のとおりです。nginx-vコマンドを使用します。 nginx.confファイルでバージョンディレクティブを表示します。 nginxエラーページを開き、ページタイトルを表示します。

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。
