mac使用nginx配置图片服务器——访问文件夹或文件返回403

场景:
前端需要可配置的图片,因此后端需要提供图片地址,本地调试需要搭建一个图片服务器。

过程:

  1. 使用 nginx 进行图片服务器的搭建
  2. nginx 进行 server 配置,配置内容如下
server {
listen 80;  #监听80端口
server_name  images.me.in #随便取的一个域名,需要在 hosts 文件中同时进行配置,IP 域名 (IP 为 127.0.0.1,域名为  images.me.in)可以让项目和此域名保持一致以让图片服务器和项目同域可访问
 location /images/ {
    root /User/XX/Desktop/ ; #root 能够让访问 /images/ 路径时,访问到 /User/XX/Desktop/images,如果将 root 替换为 alias,则访问的是 /User/XX/Desktop/;其中 /User/XX/Desktop/ 是本机中的绝对路径。
autoindex on; #打开目录浏览功能
  }
}
  1. 启动 nginx
  2. 浏览器输入地址 images.me.in ,有看到 nginx 欢迎页说明启动成功,
  3. 继续访问 images.me.in/images,提示 403 forbidden,说明文件夹无法被访问到,nginx 用户没有权限。
  4. 猜测原因是 nginx 没有权限去访问 images 文件夹,或者文件夹自身问题导致不能被某些用户访问,
  5. 通过 ls -l 命令查看文件夹权限,-rwxr--r--,用户能读写执行,其它人也能读,说明不太可能是 images 的问题,一开始为了测试将 images 权限全部打开,chmod 777 images,由于是本地暂时调试,所以没考虑到访问安全的问题,不过后来改回 744,以确保不是文件夹的权限问题。
  6. 查阅网上资料发现 nginx 默认用户是 nobody,没有访问目录权限,要修改 nginx 的配置文件 nginx.conf ,打开 nginx.conf 第一行修改为 user XX staff,记得要去掉注释 ,XX 为当前用户,staff 为所属 group, 并保存。(这里如果不写staff 会不成功,原因还未查明)
  7. 重新启动 nginx
  8. 访问 images.me.in/images 发现能看到图片文件夹。配置结束。
配置Nginx以根据图片文件夹路径直接返回图片给前端时,你可以创建一个自定义的URL映射规则。下面是一个基本的步骤: 1. **修改Nginx配置文件(通常是`/etc/nginx/nginx.conf` 或 `sites-available` 目录下的网站配置)**: - 在`http`或`server`块中添加一个新的location指令,指定图片目录的路径。例如: ```nginx location /images/ { alias /var/www/html/images/; autoindex on; # 显示目录索引,默认关闭 try_files $uri $uri/ =404; } ``` 这里假设图片存储在 `/var/www/html/images/` 文件夹下。 2. **开启目录列表(autoindex)**: 如果你想让客户端看到目录结构,可以在location指令中添加 `autoindex on`。 3. **尝试文件查找(try_files)**: Nginx会首先尝试访问 `$uri` 和 `$uri/` 来找到对应的文件。如果找不到,它会返回404错误。 4. **权限设置**: 确保Nginx用户有权限访问图片文件夹及其内容。可以通过修改`user`或`group`配置,并使用`chmod`命令调整权限。 5. **重启Nginx**: 配置更改后,需要重启Nginx以应用新的设置: ``` sudo service nginx restart ``` 现在,当你通过类似 `http://yourdomain.com/images/filename.jpg` 的URL请求图片时,Nginx会直接从指定的文件夹返回图片文件给前端。 **相关问题--:** 1. 如何设置Nginx的权限,使得它能够访问图片文件? 2. 如何在Nginx配置防盗链,防止未经授权的图片访问? 3. Nginx是否支持根据后缀名自动识别并返回对应类型的图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值