Nginx 提供靜態 PHP 文件
在嘗試為緩慢的 Wordpress 站點實現一些記憶體時 - 我在 NGINX 級別啟用了 cachig。
但是,它似乎堅持渲染文件,並且不想放手。
它不在記憶體中,我嘗試將所有內容還原,將 SendFile 禁用為 Off,但是 Nginx 仍然希望提供 5 天前的陳舊文件。
我已經刪除了 Nginx,重新安裝它,重新建構它,什麼都沒有。
有什麼想法嗎?
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile off; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## # access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; }
fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=NEN_CACHE:100m inactive=60m; fastcgi_cache_key " $ scheme $ 請求方法 $ host $ request_uri";
server { listen 82 default_server; listen [::]:81 default_server ipv6only=on; root /var/www/html/nen; index index.html index.htm index.php; # Make site accessible from http://localhost/ server_name localhost; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ { expires 1M; access_log off; add_header Cache-Control "public"; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_no_cache $no_cache; fastcgi_cache_bypass $no_cache; # fastcgi_cache drm_custom_cache; fastcgi_cache NEN_CACHE; fastcgi_cache_valid 404 60m; fastcgi_cache_valid 200 60m; fastcgi_max_temp_file_size 4m; fastcgi_cache_use_stale updating; add_header X-Cache $upstream_cache_status; }
似乎正在進行的記憶體是由於 WP Super Cache,一個 wordpress 外掛。
我通常會建議您查閱它的文件,但是該外掛幾年前遭受了一個令人難以置信的重大漏洞,這完全破壞了我對作者的任何信任。就個人而言,我會懷著極大的偏見從您的伺服器中清除它,並使用更高級別的記憶體層(如您正在做的 Nginx 或Varnish,這非常好)作為您唯一的整頁記憶體系統。
這不是一個直接的答案,而是告訴您如何自己解決。這些事情通常很難解決,因為您無法發布所有內容。
回到基礎。從您的 PHP 位置刪除所有額外的調整內容。使用只呼叫 phpinfo() 的簡單 PHP 文件。嘗試通過套接字呼叫 PHP,看看它是否有所作為。檢查 PHP 和 nginx 訪問和錯誤日誌以獲取有用資訊。一旦基礎工作添加了基本的 Wordpress、Nginx 記憶體。除非您有很多登錄使用者,否則我不會過多地在 Wordpress 中進行記憶體,Nginx 記憶體將在大多數情況下為您的大部分站點提供服務。如果您無法停止生產,請在不同的 nginx 位置下的單獨目錄中執行此操作。
這就是我如何稱呼我的 PHP 解釋器 HHVM,但我像您一樣稱呼 php-fpm。
upstream php { server 127.0.0.1:9001; } # Inside my php location fastcgi_pass php;