云服务器的nginx反向代理oss中的文件

2025-03-06

来源:汇喜乐

在云服务器上搭建Nginx反向代理服务器,然后关联oss中的文件,这样只需通过访问服务器公网IP的80端口(或者绑定域名),即可访问oss中的Bucket中的文件,从而实现通过固定IP或者域名访问OSS资源的需求。

特别是目前的阿里云ECS云服务器和对象存储oss在同一地域时,两者可以免流量费,从而给服务器减轻了压力。

以阿里云轻量应用服务器为例,2核CPU,4G内存,操作系统 Ubuntu 22.04,已经通过宝塔面板安装了(web环境):Nginx 1.27.1。

因OSS的安全设置,当使用默认域名通过浏览器访问OSS中的图片或网页文件时,会直接下载。所以通过浏览器预览Bucket中的图片或网页文件,需为Bucket绑定自定义域名,并在proxy_pass中填写已绑定的域名。

配置Nginx

对于不同场景,您可以参考以下代码按您的业务场景修改nginx.conf文件中的HTTP模块。

 server {
        listen 80;
        server_name 47.**.**.73; 
        
        location / {
                   proxy_pass http://这里填写oss的内部域名; 
                   proxy_http_version 1.1;
                   proxy_set_header Host 这里填写oss的内部域名;
                   proxy_connect_timeout 15s;
                   proxy_read_timeout 15s;
                   proxy_send_timeout 15s;
                   proxy_set_header Connection "";
                   proxy_buffering off;
                   proxy_request_buffering off;
                   }
        }
        

请注意:
- 将 47.**.**.73 替换为你的实际服务器IP地址。
- 将 这里填写oss的内部域名 替换为你的OSS内部域名。
- 确保Nginx配置文件语法正确后重新加载Nginx使配置生效。