宝塔面板设置通过域名访问静态资源

3,182 阅读2分钟

前言

自己的个人博客终于开张了。虽然还什么都没有,虽然功能都不齐,但是也值得高兴一分钟的,但是(为什么凡事都有但是)!高兴过后问题就紧跟着来了。
因为还在慢慢开发所以某一些小小的细节都被我有意无意的忽略掉了,直到有一天偶然看到自己博客的头像竟然还是一张本地的图片...
WTF?!
这可太不程序员太过于LOW逼以至于被同行看到会被笑死
image.png

正文

索性我在宝塔面板挂了一个腾讯云的服务器,我就想着把头像放在文件目录里,然后通过域名访问这张图片。
所以今天的主题就是宝塔面板设置通过域名访问静态资源
下面开始吧
1、在终端输入 nginx -T 查看自己的nginx配置文件,这一步返回的是你设置的站点的配置文件(就是下面的配置)

image.png 2、在server模块下加入以下内容

location /img/ {
  alias /data/www/imgs; //这是你放置图片的目录地址
  expires 30d; 缓存时间
  access_log off; 关闭nginx对访问日志的记录
}

这一步我是通过GPT的提示下进行的,我在它提到的nginx配置下加入

location /img/ {
  alias /data/www/imgs;
}

结果没有用,没有报错日志但是访问资源会提示404,折腾了半天最后还是通过nginx -T看到站点的配置文件中没有location配置,加上之后终于成功访问到图片

3、确保图片目录以及图片本身的权限配置没有问题,可以使用命令进行设置

# 检查权限
ls -l /data/www/imgs/

# 更改权限
chmod 755 /data/www/imgs/
chmod 644 /data/www/imgs/avatar.jpeg

在我自己的宝塔面板上,通过上面的配置就可以成功通过https://domain/img/avatar.jpeg的形式访问图片

image.png

要是还不能成功访问的话,可以通过下面的方法查看一下(我提出的方案 < 可行的解决方案) 1、查看Nginx运行的用户是否拥有读取权限,可以通过下面的命令查看

sudo -u www cat /data/www/imgs/avatar.jpeg

如果输出Permission denied,那么通过下面命令添加权限

sudo chmod +r /data/www/imgs/avatar.jpeg

2、确保自己配置中指向正确文件目录并且目录中包含有目标图片资源(名称大小写无误)
3、如果服务器使用防火墙,确保防火墙允许HTTPS请求。
可以使用以下命令查看防火墙规则:

sudo iptables -L

并使用以下命令添加HTTPS规则:

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

目前先就这几点吧..再多我也没搞明白呢,如果还有啥方法欢迎大家留言

结束

最后建议大家ChatGPT挺好玩的但是不能尽信(也可能是我太菜了)

本身也不是多复杂的功能,就这样吧

谢谢大家