阿里云OSS之Nginx反向代理配置

本文介绍如何配置阿里云OSS对象存储与Nginx反向代理,通过修改nginx.conf文件实现HTTP请求的转发,并详细展示了针对特定区域及域名的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阿里云OSS对象存储的Nginx反向代理设置,修改nginx.conf文件

已华北2区域为例,在nginx.conf中添加:

########################## OSS #############################
  upstream ossproxy{
	server oss-cn-beijing-internal.aliyuncs.com;
	}
  server {
    listen 80;
    server_name ooo.xxx.com;
	error_page 404 http://ooo.xxx.com/error;
    location /nginx_status {
      stub_status on;
      access_log off;
      allow 127.0.0.1;
      deny all;
    }

    location ~ {
		proxy_pass http://ossproxy;
		proxy_redirect     off; 
        proxy_set_header   Host             ooxx.oss-cn-beijing-internal.aliyuncs.com;#Host要修改为OSS的域名或OSS控制台绑定的域名,否则OSS无法识别会报错 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; 
        proxy_max_temp_file_size 0; 
        proxy_connect_timeout      90; 
        proxy_send_timeout         90; 
        proxy_read_timeout         90; 
        proxy_buffer_size          4k; 
        proxy_buffers              4 32k; 
        proxy_busy_buffers_size    64k; 
        proxy_temp_file_write_size 64k; 
    }

  }

把相应的域名替换为自己的Endpoint域名和Bucket Name

### 配置 Nginx 反向代理以访问阿里云 OSS 为了使用 Nginx 实现对阿里云 OSS反向代理,可以通过以下方式完成配置: #### 1. 基础环境准备 确保已安装 Nginx 并能够正常运行。可通过以下命令验证 Nginx 是否成功启动以及其进程是否存在: ```bash nginx ps -ef | grep nginx ``` #### 2. 开放必要端口 默认情况下,Nginx 使用的是 80 端口。如果防火墙未开放此端口,需要手动开放它以便外部访问: ```bash firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload ``` #### 3. 修改 Nginx 配置文件 编辑 `nginx.conf` 文件或者对应的虚拟主机配置文件,在其中添加针对 OSS反向代理规则。 以下是完整的配置示例: ```nginx server { listen 80; server_name your-domain.com; location /oss/ { if ($request_uri ~* \.(png|jpg|jpeg)) { set $args "x-oss-process=style/watermark"; } proxy_pass http://<your-bucket>.oss-cn-region-internal.aliyuncs.com/; proxy_set_header Host <your-bucket>.oss-cn-region-internal.aliyuncs.com; proxy_hide_header Content-Disposition; } } ``` 在此配置中: - 将 `/oss/` 路径映射至 OSS 存储桶的内部网络地址。 - 如果请求 URI 匹配特定图像扩展名(如 `.png`, `.jpg`, 或者 `.jpeg`),则附加参数 `x-oss-process=style/watermark`[^2]。 - 设置 `proxy_pass` 地址为您的 Bucket 内部域名,并通过 `proxy_set_header` 指定正确的 Host 头信息[^3]。 #### 4. 测试本地可用性 保存修改后的配置文件并重新加载 Nginx 配置: ```bash nginx -t nginx -s reload ``` 随后可以在本机测试是否能正确访问 OSS 上的内容: ```bash curl http://localhost/oss/<object-key> ``` #### 5. 配置防盗链保护 为了避免未经授权的第三方网站盗用您存储在 OSS 中的资源,可以启用防盗链功能。在 Nginx 配置中加入以下内容来强制指定合法的 Referer 请求头: ```nginx location / { valid_referers none blocked static.your-domain.com; if ($invalid_referer) { return 403; } proxy_set_header Referer http://static.your-domain.com; proxy_pass http://<your-bucket>.oss-cn-region-internal.aliyuncs.com/; } ``` 这里设置了仅当 Referer 来自于 `http://static.your-domain.com` 时才允许访问;其他情况返回 HTTP 403 错误状态码[^4]。 --- ### 注意事项 - 替换 `<your-bucket>` 和 `oss-cn-region-internal.aliyuncs.com` 为您实际使用的 Bucket 名称及其所在区域的内网地址。 - 若 ECS 实例与 OSS Bucket 不在同一地理区域内,则需改用外网访问形式。 - 对于生产环境中部署的服务,请考虑 SSL/TLS 加密连接以保障数据传输安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值