介绍

ngx_cache_purge is nginx module which adds ability to purge content from FastCGIproxySCGI and uWSGI caches.

开始安装
准备安装包

安装包下载地址:https://github.com/FRiCKLE/ngx_cache_purge/releases

[root@master nginx-1.18.0]# cd /usr/src/
[root@master src]# wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
[root@master src]# tar zxf 2.3.tar.gz
查看nginx安装信息
[root@master nginx-1.18.0]# /usr/local/nginx/sbin/nginx -V
nginx version: WebSite/9.9.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --modules-path=/usr/local/nginx/modules --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --pid-path=/usr/local/nginx/tmp/nginx.pid --lock-path=/usr/local/nginx/tmp/nginx.lock --user=nginx --group=nginx --with-threads --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E
重编译Nginx

添加如下:

  • –add-module=/usr/src/ngx_cache_purge-2.3
[root@master nginx-1.18.0]# ./configure --prefix="${Nginx_Path}" --sbin-path="${Nginx_Path}/sbin/nginx" --modules-path="${Nginx_Path}/modules" --conf-path="${Nginx_Path}/conf/nginx.conf" --error-log-path="${Nginx_Path}/logs/error.log" --pid-path="${Nginx_Path}/tmp/nginx.pid" --lock-path="${Nginx_Path}/tmp/nginx.lock" --user="${Nginx_User}" --group="${Nginx_User}" --with-threads --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --add-module=/usr/src/ngx_cache_purge-2.3 --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-openssl=/usr/src/openssl1.1.1g/
[root@master nginx-1.18.0]# make

等待无报错后停止nginx并备份原Nginx,拷贝文件

[root@master nginx-1.18.0]# cp /usr/local/nginx/sbin/nginx{,.bak}
[root@master nginx-1.18.0]# cp objs/nginx /usr/local/nginx/sbin/nginx
检查安装信息
[root@master sbin]# /usr/local/nginx/sbin/nginx -V
nginx version: WebSite/9.9.9
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --modules-path=/usr/local/nginx/modules --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --pid-path=/usr/local/nginx/tmp/nginx.pid --lock-path=/usr/local/nginx/tmp/nginx.lock --user=nginx --group=nginx --with-threads --with-file-aio --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --add-module=/usr/src/ngx_cache_purge-2.3 --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E
修改Nginx配置文件

在nginx.conf配置文件中,http{}中添加如下内容:

    #指定缓存目录(需提前创建),缓存层数,keys名
    fastcgi_cache_path /dev/shm/nginx-cache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=500m;
    fastcgi_temp_path /dev/shm/nginx-cache/temp;
    fastcgi_cache_key "$scheme$request_method$host$request_uri";
    fastcgi_cache_use_stale error timeout invalid_header http_500;
    #忽略一切nocache申明,避免不缓存伪静态等
    fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

在Server{}合适的位置中添加(请根据实际情况修改)如下内容:

server
{
    #Conf-Start
    #listen 80;
    listen 443 ssl http2;
    server_name www.ym68.cc ym68.cc;
    index index.html index.htm index.php;
    root /wwwroot/blog_ym68.cc;
    charset utf-8;
    #Conf-END

-------此处省略!-------
        if (!-e $request_filename) {
            rewrite . /index.php last;
        }
    set $skip_cache 0;
    #post访问不缓存
        if ($request_method = POST) {
            set $skip_cache 1;
        }   
    #动态查询不缓存
        if ($query_string != "") {
            set $skip_cache 1;
        }   
    #后台等特定页面不缓存(其他需求请自行添加即可)
        if ($request_uri ~* "/wp-admin/|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
            set $skip_cache 1;
        } 
    #对登录用户、评论过的用户不展示缓存
        if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
            set $skip_cache 1;
        }
    #PHP-INFO-START  PHP引用配置,可以注释或修改
        location ~ [^/]\.php(/|$) {
            if ($query_string ~*  ^(.*)author=(.*)$){
                rewrite ".*" https://$host/waf_auth break;
            }
            root           /wwwroot/blog_ym68.cc;
            fastcgi_pass WebStie_php_Server;
            #fastcgi_pass unix:/dev/shm/php-fpm.sock/sock_blog1;
            fastcgi_index  index.php;
            include        fastcgi.conf;
            add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
            #新增的缓存规则
            fastcgi_cache_bypass $skip_cache;
            fastcgi_no_cache $skip_cache;
            add_header X-Cache "$upstream_cache_status From $host";
            add_header Cache-Control  max-age=0;
            add_header Nginx-Cache "$upstream_cache_status";
            add_header Last-Modified $date_gmt;
            add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
            add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
            add_header X-XSS-Protection "1; mode=block"; # XSS 保护
            etag  on;
            fastcgi_cache WORDPRESS;
            fastcgi_cache_valid 200 301 302 1d;
        }
-------!此处省略-------
    error_log  /usr/local/nginx/logs/www.ym68.cc.error.log;
}
安装Nginx Helper插件

在WordPress插件中直接搜索Nginx Helper安装并启用插件

请进入Nginx Helper配置页面按照图示进行配置


该文章采用「CC 协议」,转载必须注明作者和本文链接.
分类: Nginx