Nginx+fastcgi_cache 配置magento缓存

废话不多说,直接上配置文件

server {
    listen       81;
    server_name  localhost;
    root  /opt/dev/workspace/magento17; ## App folder
    index  index.php;
    
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires  max;
        access_log  off;
        log_not_found  off;
    }
 
    location / {
        #try_files  $uri @fcgi_cache;
        if ( -f $request_filename){
                 expires 30d;
                 break;
         }
         
        if ( !-e $request_filename ){
                rewrite ^(.*) /index.php last;//这个是配置所有的非静态文件请求都重定向到index.php
        }

	#if ($cookie_frontend) { return 413; }
        #if ($cookie_CUSTOMER_AUTH) { return 413; }
        #if ($request_method = POST ) { return 413; }
        #error_page 413 = @fcgi_nocache;
    }
    
    # Deny access to hidden files
    location ~ (/(app/|includes/|/pkginfo/|var/|report/config.xml)|/\.svn/|/.hta.+) {
        deny  all;
    }
    
    # Forward paths like /js/index.php/x.js to relevant handler
    location ~ .php/ {
        rewrite ^(.*.php)/ $1 last;
    }

    location ~ \.php {
        set $nocache yes;
	
        if ( $request_uri ~ "^/product"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/storyselect"){
		set $nocache "";
	}
	if ( $request_uri ~ "^/topic"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/p\d+\.html"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/hotnav"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/filter"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/mainfilter"){
                set $nocache "";
        }
	if ( $request_uri ~ "^/tagpl"){
                set $nocache "";
        }
        if ( $request_uri ~ "^/?$"){
                set $nocache "";
        }   
        if ( $request_uri ~ "^/index\.php/?\s*"){
                set $nocache "";
        }

        fastcgi_pass   127.0.0.1:3344;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME  /index.php;
        include        fastcgi_params;

        fastcgi_cache  F;
        #fastcgi_cache_key  "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; ## Original
        fastcgi_cache_key  "$scheme$request_method$host$request_uri$http_if_modified_since$http_if_none_match";
        #fastcgi_cache_lock  on 5s; # NGINX 1.1.12
	
        fastcgi_cache_valid  200 301 302 304 1d;
	fastcgi_cache_valid all 3h;
	
        fastcgi_cache_min_uses  1;
        fastcgi_cache_valid  30m;
        fastcgi_cache_use_stale  updating error timeout invalid_header http_500;
        fastcgi_cache_bypass  $nocache;
        fastcgi_no_cache  $nocache;
	fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
    }

    
    # Manually purge pages
    #location ~ /purge(/.*) {
    #    fastcgi_cache_purge MAGE "$scheme$request_method$host$1";
    #}  
}

正常情况下magento返回的页面,header中有cookie 而且 Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 ,所以nginx是不会缓存这些页面的,为了让nginx能缓存页面必须添加这么一句: fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

好的,我知道你的问题了。针对你的问题,我可以给你一些简单的部署步骤: 1.安装nginx和PHP 在CentOS 6.8中安装nginx和PHP的方式如下: ``` sudo yum install nginx sudo yum install php-fpm ``` 2.配置nginx配置nginx之前,你需要备份一下默认的nginx配置文件。备份命令如下: ``` sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak ``` 然后,你可以通过编辑/etc/nginx/nginx.conf文件来配置nginx。 下面是一个简单的nginx配置示例,可以将它添加到/etc/nginx/nginx.conf文件中: ``` user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } ``` 在这个示例配置中,我们将nginx的根目录设置为/usr/share/nginx/html,并且将index.php添加到默认文档列表中。同时,我们还配置了一个location块,用于处理PHP文件。 3.配置PHP 在配置PHP之前,你需要备份一下默认的php-fpm配置文件。备份命令如下: ``` sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.bak ``` 然后,你可以通过编辑/etc/php-fpm.d/www.conf文件来配置PHP。 下面是一个简单的PHP配置示例,可以将它添加到/etc/php-fpm.d/www.conf文件中: ``` [www] user = nginx group = nginx listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 ``` 在这个示例配置中,我们将PHP-FPM的用户和组设置为nginx,并将PHP-FPM的监听套接字设置为/var/run/php-fpm/php-fpm.sock。 4.重启服务 完成配置后,你需要重启nginx和php-fpm服务,以使配置生效。重启命令如下: ``` sudo systemctl restart nginx sudo systemctl restart php-fpm ``` 到这里,就完成了nginx+PHP的简单部署。同时,为了进一步提升性能,你可以使用Nginx+PHP+FastCGI加速模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值