阿里云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

### 本地前端对接阿里云OSS跨域设置 为了使本地前端能够成功对接阿里云OSS并处理跨域请求,需确保浏览器发送的预检请求(OPTIONS)得到正确响应。这涉及到调整OSS服务端的CORS配置以及可能需要修改Nginx或其他反向代理服务器的相关设置。 #### 修改OSS CORS规则 通过阿里云控制台为指定Bucket添加或编辑CORS规则来允许来自特定源的访问: - 登录[阿里云官网](https://www.aliyun.com/); - 进入对象存储OSS产品详情页找到对应的bucket名称; - 在权限管理下的`跨域设置(CORS)`选项卡内新增一条或多条策略声明[^2]; 每条记录应至少包含如下字段: | 字段名 | 描述 | | --- | --- | | AllowedOrigin | 允许发起跨域请求的实际地址列表,支持通配符*表示任意站点均可访问| | AllowedMethod | 支持的方法GET/PUT/POST/DELETE等,默认全部开放可按需限定范围| | AllowedHeader | 可选参数,定义哪些HTTP头部可以被包含于实际请求中传输给资源服务器| 例如下面是一个较为宽松但实用性强的例子: ```json [ { "AllowedOrigin": ["http://localhost:8080"], "AllowedMethod": ["GET","PUT"], "AllowedHeader": ["Authorization"] } ] ``` 此配置意味着只接受来源于`http://localhost:8080`路径下发出的GET和PUT类型的请求,并且这些请求能携带Authorization头信息用于身份验证过程[^3]。 #### Nginx反向代理配置优化 如果应用部署环境中有使用Nginx作为前置网关,则还需要适当调整其配置文件以确保整个链路畅通无阻: ```nginx location / { proxy_pass http://your_oss_endpoint; # 添加必要的headers以便让浏览器知道该接口支持跨域资源共享 add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; # 对于preflight request(OPTIONS),直接返回204状态码而不转交给后端处理 if ($request_method = 'OPTIONS') { return 204; } } ``` 上述片段展示了如何在Nginx层面进一步增强对于跨域的支持力度,特别是针对那些非简单请求(pre-flight),即带有自定义Headers或是采用了除GET/POST之外其他动词的情况时所必需执行的操作[^1]。 完成以上两步之后,理论上就可以实现在本地环境中顺利地从前端提交数据至远端位于阿里云上的Object Storage Service了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值