Nginx
nginx反向http代理不記憶體php生成的圖像
我正在測試在 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!