Nginx

nginx反向http代理不記憶體php生成的圖像

  • February 13, 2020

我正在測試在 nginx 中創建記憶體,並讓它在我設置的兩個目錄下都執行良好,但以下內容除外:當我嘗試記憶體 php 生成的圖像時,它只是充當執行 php 圖像的 apache 伺服器的代理生成腳本。它適用於任何靜態 html、css、js 或文本文件。如何讓 nginx 也記憶體 php 生成的圖像?我在想我的 PHP 生成中可能缺少一些東西,使 nginx 認為它是一個可記憶體的文件,但不知道從這裡去哪裡。

這是我的 nginx.conf:

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
       worker_connections 768;
       # multi_accept on;
}

http {
 proxy_cache_path  /var/www/cache/muncherelli/cdn levels=1:2 keys_zone=muncherelli:8m max_size=1000m inactive=600m;
 proxy_cache_path  /var/www/cache/mi/client/images levels=1:2 keys_zone=miclient:8m max_size=1000m inactive=600m;
 proxy_temp_path /var/www/cache/tmp;


 server {
   location /muncherelli/cdn/ {
     proxy_pass http://muncherelli.com/wp-content/;
     proxy_cache muncherelli;
     proxy_cache_valid  200 302  60m;
     proxy_cache_valid  404      1m;
   }

   location /mi/client/images/ {
     proxy_pass http://client.images.example.com/;
     proxy_cache miclient;
     proxy_cache_valid  200 302  60m;
     proxy_cache_valid  404      1m;
   }
 }

}

以及我的 php 腳本的圖像創建部分:

$img = imagecreatefromjpeg($full_image_path);

header('Content-Type: image/jpeg');
imagejpeg($img);
imagedestroy($img);

如何讓 nginx 也記憶體這些圖像?

很可能一些額外的標頭阻止了 nginx 記憶體響應。

我也必須添加我的答案,我調試了 2 週(不幸的是真的)。

setcookie()預設情況下未記憶體在 nginx 記憶體/反向代理中的php 頁面(或其他) 。

我在每個列表詳細資訊頁面(超過 500 000 個)上都有一個 cookie“login_return_url”,我不明白為什麼網站看起來更慢,流量和Google點擊量越來越少,儘管記憶體顯然工作得很好。

而且我大部分時間都在登錄(不需要登錄返回 cookie),所以我得到了記憶體頁面,而其他人都沒有。

謝謝@muncherelli!

引用自:https://serverfault.com/questions/703755