gpt4 book ai didi

php - 如何在 nginx (Ubuntu 16.04) 上配置基本的 FastCGI 缓存

转载 作者:行者123 更新时间:2023-12-04 18:32:01 26 4
gpt4 key购买 nike

我正在尝试让基本的 FastCGI 缓存工作,但是在关注 this tutorial 之后遇到了麻烦.

在全新安装的 Ubuntu 16.04 上,我运行了以下命令:

apt-get update
apt-get install -y nginx
apt-get install -y php-fpm

然后我改了 /etc/nginx/sites-available/default至:
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
include snippets/fastcgi-php.conf;
# fastcgi_cache MYAPP;
# fastcgi_cache_valid 200 60m;
}
}

添加名为 time.php 的文件后在具有以下内容的服务器文档根目录 ( /var/www/html) 中:
<?php echo time();
和导航 IP/time.php ,文件执行并显示时间戳。重新加载时,会显示新的时间戳。

如果我取消注释以上行,则只有 <html><body></body></html> 的空白屏幕负载。

为什么要添加:
        fastcgi_cache MYAPP;
fastcgi_cache_valid 200 60m;

导致空白的html页面?如何将其修复为缓存 time.php并将缓存版本提供给 future 的请求?

注意:我确实看到了 /etc/nginx/cache已创建并包含数据。我将目录更改为 777权限以消除权限问题。

最佳答案

$ sudo mkdir -p /var/cache/nginxfastcgi
$ chown www-data: /var/cache/nginxfastcgi

然后在您的配置中
    fastcgi_cache_path /var/cache/nginxfastcgi levels=1:2 keys_zone=fastcgicache:10m inactive=10m max_size=64m;
fastcgi_cache_key $scheme$request_method$host$request_uri;

fastcgi_cache_lock on;
fastcgi_cache_use_stale error timeout invalid_header updating http_500;
fastcgi_cache_valid 5m;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

server {
listen 80;

root **************;
index index.php index.html index.htm;

server_name *************;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
add_header X-Cache $upstream_cache_status;
fastcgi_cache fastcgicache;
}
}

关于php - 如何在 nginx (Ubuntu 16.04) 上配置基本的 FastCGI 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com