账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx防盗链有效,但是连本地的图片也一起拦截了
    55
    0

    在后台编辑上传的图片成功了,但是图片显示不了,直接访问aaa.com/test.png Nginx返回403,
    经过多次网上搜索答案尝试之后,无功而返,黔驴技穷。各位大神帮看看咋回事,server段的代码如下:

    server {
            listen       80;
            server_name  aaa.top aaa.top;
            root    /home/aaa/webroot;    
            
            location / {
               root  /home/aaa/webroot;
               proxy_pass http://myser;
            }
            
            #禁止直接访问tomcat下的WEB-INF目录
            location ~ ^/(WEB-INF)/ { 
                #deny all; 
                return 404;
            }
            
            location ~* \.(gif|jpg|jpeg|bmp|png|ico|txt|swf|pdf|xls|xlsx|doc|jif|js|css)$ { 
                access_log off;
                expires 24h;
                valid_referers none blocked www.aaa.top aaa.top;
                if ($invalid_referer) {
                    return   403;
                }
            
            }
    
            #禁止访问这些目录下的可执行文件
            location ~* /(upload|cache)/.*.(php|pl|py|jsp|sh|cgi|asp)$ {
                deny    all;
            }
    
    }
    
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ╬▼皿▼ 普通会员 1楼

      Nginx 的防盗链机制可以帮助防止恶意用户访问恶意资源,包括本地图片。但是,防盗链机制也可能会误拦截本地的图片。

      如果图片的URL是在本地,Nginx 防盗链机制可能会误将该图片拦截。这种情况下,你可以尝试以下方法:

      1. 验证图片的 URL 是否在 Nginx 防盗链列表中。你可以使用 nginx -t 命令来查看 Nginx 防盗链列表。

      2. 如果图片的 URL 在 Nginx 防盗链列表中,你可以使用 nginx -I 命令来查看 Nginx 防盗链规则。你可以在这个命令中添加一个检查规则,只有在本地网络范围内的图片才能被允许。

      3. 如果以上两种方法都无法解决问题,你可能需要更深入地检查 Nginx 的配置。你可以查看 Nginx 的配置文件,例如 nginx.confserver.conf,看看是否有误拦截图片的配置。

      希望以上信息对你有所帮助。如果你还有其他问题,欢迎继续提问。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部