nginx做文件共享的时候出现403错误

今天在做nginx文件共享的时候一直出现403错误,看nginx日志提示权限不足,查看权限都有r权限,开始还以为是因为树莓派开启了selinux,需要打tag才行,共享的文件加入x权限就行了,难道nginx还需要x权限?

nginx配置如下

server {
listen 8090;
charset utf-8;

location /share {
#root   /var/www/html/samba_share/; #跟location 路径为/的时候 直接用root 访问是时候不加后缀
alias /var/www/html/samba_share/; #跟location路径的时候得用alias要不然会404 访问的时候加后缀/share
    autoindex on;  # 开启目录列表功能
autoindex_exact_size off; # 显示文件大小
    autoindex_localtime on;   # 显示文件时间

}
location /python {
#root   /var/www/html/samba_share/; #跟location 路径为/的时候 直接用root 访问是时候不加后缀
alias /media/pengxiao/kingston/python/; #跟location路径的时候得用alias要不然会404 访问的时候加后缀/share
    autoindex on;  # 开启目录列表功能
autoindex_exact_size off; # 显示文件大小
    autoindex_localtime on;   # 显示文件时间

}

}

### 解决 Nginx 配置中 403 Forbidden 错误 当遇到 Nginx 返回 `403 Forbidden` 错误时,通常是由权限不足引起的。对于 `/opt/html/` 目录下的资源无法被正常访问的情况,可以通过调整该目录及其子项的读写权限来解决问题。 ```bash chmod -R 777 /opt/html/ ``` 此命令赋予了 `/opt/html/` 及其所有内部文件和子目录完全控制权给所有者、群组和其他用户[^1]。然而,在生产环境中建议更精细地管理权限分配而不是给予广泛权限。 另一种方法是更改 Nginx 进程运行的身份至与目标静态资源所在位置相匹配的所有者身份: ```bash chown -R nginx:nginx /path/to/webroot ``` 这会将指定路径下的一切都变更为由名为 'nginx' 的用户及同名主机组所拥有,从而避免因所有权差异而导致的操作受限问题[^5]。 ### 设置正确的 CORS 跨域策略 为了使前端应用能够成功向后端 API 发起请求而不受同源政策限制的影响,需确保服务器端正确设置了 CORS (Cross-Origin Resource Sharing) 头部信息。具体到 Nginx 中实现这一点的方式如下所示: #### 修改站点配置文件 编辑对应虚拟主机或 location block 下的相关指令集,加入必要的 HTTP 响应头定义: ```nginx location /api { add_header Access-Control-Allow-Origin "http://example.com"; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"; if ($request_method = 'OPTIONS') { return 204; } } ``` 上述片段展示了如何针对特定 URL 模式的接口开放跨站资源共享能力,并特别处理了预检请求(即 OPTIONS 方法),直接返回无内容的状态码以加快流程[^3]。 另外需要注意的是,如果应用程序涉及凭证交换(如 Cookies 或 HTTP 认证),则还需额外声明允许携带认证信息并指明具体的来源地址而非通配符星号(*) : ```nginx add_header Access-Control-Allow-Credentials "true"; ``` 同时客户端 JavaScript 应相应设置 AJAX 请求选项中的 `withCredentials=true;` 属性以便发送带验证数据的调用[^4]。 通过以上措施可以有效缓解由于缺乏适当的安全机制而引发的 403 状态码异常现象,同时也实现了安全可靠的跨域通信功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值