解决: 网站访问报错 AccessDenied (阿里云 OSS + CDN )

本文分享使用阿里云OSS服务和CDN服务时,用顶级域名访问个人站点失败的问题。分析原因并给出解决办法,如用二级域名配置CDN加速OSS,还介绍了具体操作步骤。此外,提及服务器配置、服务费用,以及压缩图片、图床和找图的网站。

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. 使用阿里云 OSS服务 + CDN 服务后,直接用顶级域名访问个人站点失败,报错如下:

<Code>AccessDenied</Code>
<Message>The bucket you access does not belong to you.</Message>
<RequestId>5CEF38AEE94046FA2685425F</RequestId>
<HostId>ergouzi.fun</HostId>
</Error>

 

2. 原因及解决:

cdn 加速 oss,不能直接访问自定义的cdn加速域名,要后面加上oss里面具体的文件。

就像访问 oss 自带的域名,要在访问的 oss 自带的域名后面加上具体的文件地址才行一样。

建议不要把网站的域名用来配置 cdn 加速 oss,可找一个没有使用的二级域名来配置 cdn 加速 oss 使用。

 

访问网站中静态文件是走加速的,可以把网站中静态文件(图片、 js 、css 、视频、文本文件)上传到 oss 中,

然后再配置一个没有使用的自定义域名走 cdn 加速,

接着把网站中之前那些静态文件引用的地址改成您这个 cdn 加速后 oss 的文件地址,这样访问网站中的那些静态文件走的就是cdn 加速获取了。

 

3. 具体操作:

OSS 控制台 -->  域名管理

配置好 CNAME( 有2种方式,任意一种都可。)

 

4. 最终改为用二级域名 www.ergouzi.fun 访问个人站点成功 。

 

PS:

1)我的服务器是阿里云的低配 ECS :1M带宽,2G,1CPU。

2)前端 VUE 项目中图片目前大概 20 -- 30 张,单张大小 几百K 到 几M 不等。

3)OSS 服务 为期1年,40G -------- 存储费用:9元。(流量费用计量收费,其它费用目前尚未向我收取。)

我不知道这个外网流量费用最后到底会有多高,昨天我一边设置,一边自己体验了一下。就只是我自己请求站点,2小时左右收到短信,提示我阿里云账号已欠费 0.11元。

4)CDN 服务 不记得标准了,反正是选择的最便宜的那款,费用:20元。

5)压缩图片的网站:

保真压缩:https://tinypng.com (图片的清晰度基本上变化不大,但只支持常用图片格式)

可选择压缩比例:https://squoosh.app/editor (可调节压缩比例,但过度压缩,图片会失真)

6)图床网站:https://sm.ms/   (这个图床网站我试用过,但效果并不够理想)

7)高效找图的网站:https://huaban.com/ (搜索关键词 --->  画板)

<think> 首先,用户的问题是:查找OpenLDAP报错access_allowed: Backend default write access denied”的解决方案。我需要基于提供的引用来解决这个问题。 回顾引用: - 引用[1]:展示了LDAP配置示例,包括server、port、identity、password、base_dn等。 - 引用[2]:提到了OpenLDAP安装和配置步骤,建议源码安装到独立目录。 - 引用[3]:讨论了LDAP作为统一认证的优点,因其结构和效率。 用户提到的错误是“access_allowed: Backend default write access denied”。这在OpenLDAP中通常与权限问题相关,具体地说,是关于写访问被拒绝。意思是,尝试写入数据时,默认后端不允许该操作。 关键点: - 错误暗示写访问被拒绝,可能是因为配置错误或权限不足。 - 在OpenLDAP中,访问控制由ACLs(访问控制列表)管理。 从引用中提取相关信息: - 引用[1]中的配置显示了身份(identity)和密码,这表明用于连接的用户。 - 引用[2]提到配置步骤,但未具体提及ACLs。 - 引用[3]讨论了LDAP的效率,但未直接涉及错误解决。 我需要基于一般知识: - 在OpenLDAP中,常见解决方案是检查配置文件的ACLs。 - 配置文件通常是slapd.conf或动态配置在cn=config中。 - ACLs定义谁可以执行什么操作(如读、写)。 具体到这个错误: - “Backend default write access denied”直接指向默认后端的写权限被拒绝。 - 这可能是因为ACL规则没有授予特定用户写权限。 可能的解决方案: 1. **检查ACLs配置**:确保管理员用户(如引用[1]中的“cn=Manager,dc=example,dc=com”)有足够的权限写入。 2. **验证用户凭证**:确保使用正确的DN和密码进行连接。 3. **查看日志**:OpenLDAP日志可以提供更多细节。 4. **配置ACLs**:在slapd.conf或cn=config中设置适当的ACL规则。 用户提供的引用中没有直接给出解决方案,所以我需要推断或从常识出发。 结构化回答: - 既然系统要求使用中文回答,我会全程用中文。 - 结构清晰:先解释错误,然后逐步提供解决方案。 - 添加引用标识:在回答中自然地引用提供的引用。 - 生成相关问题:在末尾添加相关问题。 - 数学表达式:用户问题中没有涉及数学,所以可能不需要。 回答大纲: 1. **介绍错误**:简要解释错误含义。 2. **可能原因**:列出常见原因。 3. **解决方案步骤**: - 步骤1:验证连接凭证(参考引用[1])。 - 步骤2:检查ACLs配置(没有直接引用,但基于知识)。 - 步骤3:修改ACLs以授予写权限(详细说明)。 - 步骤4:测试更改。 4. **参考日志**:建议查看日志以获取更多信息。 5. **结尾**:确认解决方案。 6. **相关问题**:生成2-3个相关问题。 生成相关问题: - 基于主题,如如何配置OpenLDAP ACLs、常见错误等。 - 例如: 1. 如何配置OpenLDAP的访问控制列表(ACLs)? 2. OpenLDAP日志文件的路径是什么? 3. OpenLDAP的其他常见错误及解决方法? 确保回答真实可靠:我将基于OpenLDAP知识提供准确步骤。 最终回答格式: - 使用段落和步骤列表。 - 在相关部分添加引用标识。 - 结尾添加相关问题。 </think> ### OpenLDAP报错access_allowed: Backend default write access denied”的解决方案 OpenLDAP报错access_allowed: Backend default write access denied”通常表示您尝试执行写操作(如添加、修改或删除条目)时,OpenLDAP后端权限不足。这源于访问控制列表(ACLs)配置不当,导致默认后端拒绝写访问。错误可能由以下原因引起: - **权限不足**:连接用户(如管理账户)未被授予写权限。 - **配置错误**:ACLs规则未正确设置,或后端配置有问题。 - **凭证无效**:使用的DN(Distinguished Name)或密码不正确(参考引用[1]中的`identity`和`password`配置)[^1]。 下面我将一步步指导您解决此问题。请确保您有管理员权限操作OpenLDAP配置文件(通常位于`/etc/openldap/slapd.conf`或动态配置在`cn=config`中)。如果您使用源码安装,建议检查安装目录(如引用[2]所述,源码安装时应独立存放以便管理)[^2]。 ### 解决步骤 1. **验证连接凭证**: - 确保您使用的DN和密码正确。例如,在引用[1]中,`identity = "cn=Manager,dc=example,dc=com"` 和 `password = password` 必须与实际匹配。 - 测试连接:使用`ldapsearch`或`ldapmodify`命令验证凭证: ```bash ldapsearch -x -H ldap://127.0.0.1:389 -D "cn=Manager,dc=example,dc=com" -w password -b "dc=example,dc=com" ``` 如果连接失败(如“invalid credentials”错误),修复凭证后再试。 2. **检查ACLs配置**: - ACLs控制谁可以读写数据。默认配置可能只允许读访问,导致写操作被拒。 - 打开OpenLDAP配置文件: - 传统配置:编辑`slapd.conf`文件(路径可能为`/etc/openldap/slapd.conf`)。 - 动态配置:使用`ldapmodify`操作`cn=config`树。 - 查找或添加ACL规则:确保管理账户有写权限。示例规则如下: ``` access to * by dn="cn=Manager,dc=example,dc=com" write by * read ``` 这条规则表示:`cn=Manager,dc=example,dc=com`用户可以写入所有条目,其他用户只读。 - 保存文件后,重启OpenLDAP服务以应用更改: ```bash systemctl restart slapd # 或使用 service slapd restart ``` 3. **修改后端配置(如果需要)**: - 如果错误指向“Backend default”,检查后端定义是否允许写操作: - 在`slapd.conf`中,确保后端(如`backend bdb`)没有权限限制。 - 动态配置下,使用`ldapsearch`查看当前ACLs: ```bash ldapsearch -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}mdb,cn=config" # 假设使用MDB后端 ``` - 如果发现`olcAccess`规则限制写权限,添加类似规则: ``` olcAccess: {0}to * by dn="cn=Manager,dc=example,dc=com" write by * read ``` 4. **测试写操作**: - 执行一个简单写操作验证权限,如添加测试条目: ```bash ldapadd -x -D "cn=Manager,dc=example,dc=com" -w password -f test.ldif ``` 其中`test.ldif`文件内容示例: ``` dn: cn=test,dc=example,dc=com objectClass: inetOrgPerson cn: test sn: test ``` 如果成功,错误已解决;否则,查看日志获取更多线索。 5. **检查OpenLDAP日志**: - 日志文件通常位于`/var/log/slapd.log`或`/var/log/messages`。 - 使用`grep`过滤错误: ```bash grep "access_allowed" /var/log/slapd.log ``` - 日志会显示具体拒绝原因(如缺少权限的DN),帮助您针对性调整ACLs。 ### 注意事项 - **权限原则**:LDAP的设计目标是高效认证(如引用[3]所述),但ACLs配置错误会让写操作失败。确保规则符合最小权限原则[^3]。 - **重启服务**:修改配置后,必须重启`slapd`服务。 - **备份配置**:操作前备份配置文件,避免意外损坏。 - **参考安装**:如果您是源码安装,确保路径正确(如引用[2]的建议,独立目录便于管理)[^2]。 通过以上步骤,大多数“write access denied”错误都能解决。重点关注ACLs规则和凭证验证。如果问题依旧,提供日志细节可进一步诊断。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值