一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

BT宝塔Nginx反向代理导致WordPress登陆问题/缓存设置/缓存目录设置介绍

之前我们讲了👉Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

BT宝塔面板里的反向代理功能,非常简单实用,直接配置就可以用

51福利网

但是因为BT宝塔面板自带的反向代理默认是利用Nginx的反向代理原理,因此默认的配置存在一些问题,如下:

  1. 关闭缓存后仍然缓存;
  2. 开启反向代理缓存后不能正常登陆WordPress;
  3. 无法针对某个目录进行针对性缓存;

针对于以上问题,一直在捣鼓和研究,后来终于解决了。现在分享给大家对应的配置方法。

缓存问题原因分析

其实以上问题都是针对缓存的配置所导致的。因为Nginx的缓存配置默认直接在代码里面配置,BT宝塔面板则是分开设置,最终组合在一起导致缓存的问题。

宝塔官方是默认对JS/CSS等静态文件缓存,但是如果设置了WordPress伪静态的话,那将会对页面也缓存进去。比如设置某个页面伪静态后地址为https://www.51yhyh.com/1.html,那么该页面就被缓存了,因此就会导致不能正常登陆WordPress。因为缓存的页面默认是没有登录的状态,你再次访问则为缓存页面。

反向代理配置文件

话不多说,直接上代码,这里我们要登录反向代理机的BT宝塔面板,找到对应的网站,点击配置文件

复制如下代码对原代码进行替换:

#PROXY-START/
location /
{
    #缓存媒体文件
    location ~* .jpg|.png|.ts|.m3u8|.gif|.jpeg|.ttf|.webp|.woff|.woff2|.ico$
    {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_pass https://www.51yhyh.com;
        proxy_cache cache_one;
    	proxy_cache_valid 30d;
        proxy_ignore_headers Cache-Control;
    	add_header X-Cache "$upstream_cache_status from $server_addr";
    }
    
    #缓存css、js、html
     location ~* .css|.js|.html$
    {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_pass https://www.51yhyh.com;
        proxy_cache cache_one;
    	proxy_cache_valid 3d;
        proxy_ignore_headers Cache-Control;
    	add_header X-Cache "$upstream_cache_status from $server_addr";
    }
    
    proxy_pass https://www.51yhyh.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    
    #持久化连接相关配置
    #proxy_connect_timeout 30s;
    #proxy_read_timeout 86400s;
    #proxy_send_timeout 30s;
    #proxy_http_version 1.1;
    #proxy_set_header Upgrade $http_upgrade;
    #proxy_set_header Connection "upgrade";

    #add_header X-Cache $upstream_cache_status;
 

    #expires 12h;
}

#PROXY-END/

针对以上代码的说明

因为宝塔里的反向代理文件默认是全局缓存,我们没有用其代码,直接采用分类缓存的方式。大家只需将上面的域名换成自己的域名即可,如果需要修改缓存的话可以根据以上缓存类型进行更换即可。

比如不希望缓存html,缓存的话容易出现WordPress登陆后还是显示没有登陆的界面问题。那么就可以将以上代码的html部分去掉即可。

如何对某些目录设置不缓存

比如我们不希望缓存网站的某些目录,比如不希望缓存站点下的wp-admin文件夹。那么可以进行相应的设置,将如下代码加入最后

location /wp-admin {
proxy_pass https://www.51yhyh.com;
proxy_cache_valid any 0s;
}

如果有多个目录的话,那么分别增加如上代码即可。

缓存代理总结

BT宝塔面板的图形化界面给各个站长带来了很好的体验,简单易懂,可以让一个小白熟悉后马上变成网站设置的高手,但是毕竟一些代码配置的基础大家还是需要去掌握的。以上是纯代码的解决办法。当然,如果希望用CDN进行网站加速的话,还是建议购买专业CDN,加速效果会更好。

遇到的其他问题?

设置反向代理,设置了缓存,但是总接收和发送数据一样,缓存文件没有增加

研究了半天才发现是系统默认5G,参照👉宝塔面板反向代理缓存修改地址 修改一下

宝塔面板反向代理视频文件缓存不增加?修改一下为下面的配置

proxy_cache_path /www/server/nginx/proxy_cache_dir_videos levels=1:2 keys_zone=cache_videos:50m inactive=7d max_size=2t use_temp_path=off;

逐项解释这些优化:

  1. keys_zone=cache_videos:50m
    由于视频文件通常较大,可能需要更多的元数据来管理这些缓存项。因此,将keys_zone的大小增加到50MB可能是一个好主意,以便存储更多的缓存键和相关信息。
  2. inactive=7d
    视频内容通常被设计为供用户多次观看,因此设置较长的非活动时间限制(如7天)可能更合适。这意味着视频文件在7天内未被访问才会被视为不活跃,并可能被清理。
  3. max_size=2t
    将缓存的最大大小设置为2TB,以确保你有足够的空间来存储大量的视频内容。请确保你的服务器有足够的磁盘空间来支持这个设置。
  4. use_temp_path=off
    默认情况下,Nginx会在将缓存文件写入最终位置之前先写入临时目录。对于大文件(如视频),这可能会增加I/O操作的数量和延迟。通过设置use_temp_path=off,你可以让Nginx直接将文件写入最终缓存位置,减少不必要的磁盘操作。
  5. levels=1:2
    对于视频文件,保持两层目录结构通常是合适的,这有助于在大量文件时保持目录结构的清晰和高效。

请注意,这些设置可能需要根据你服务器的实际情况进行调整。务必确保你的服务器有足够的RAM来支持keys_zone的大小,并且磁盘空间足够大以支持max_size的限制。

打赏
一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《BT宝塔Nginx反向代理导致WordPress登陆问题/缓存设置/缓存目录设置介绍》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效,不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册