我在glassfish应用程序服务器前面使用Nginx前端服务器。我将静态内容上传到Amazon S3。我需要实现将静态请求传递到Amazon的URL。我做了一个如下所示的conf文件。
location ~* \.(jpg|jpeg|gif|css|png|js|ico)$ {
access_log off;
expires max;
proxy_pass http://s3-eu-west-1.amazonaws.com/usta/html/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
但是使用正则表达式,我无法将请求代理到 Amazon s3 URL,我该如何实现这个想法?
答案1
这是一种低效的解决方案,因为所有静态内容请求仍会发送到您的 Nginx 服务器,从而浪费您不必要的带宽和 CPU。
更好的解决方案是将静态内容存储并引用为 static.example.com,然后将您的域名与 S3 存储桶关联。然后您的静态内容就可以直接从 S3 高效地提供,同时仍然看起来像是托管在您的域名上。
另请参阅此相关问题: