使用nginx从S3提供单个文件Angular应用程序

时间:2014-07-12 00:36:09

标签: angularjs nginx amazon-s3

我有一个Angular应用程序,它由一个index.html文件组成。唯一的其他文件是main.css和一些图像资产。我已经重新发现,没有办法使用S3虚拟主机服务它,所以我试图将nginx设置为代理。我之前做过这个,但它是几年前的事情,并没有使用Angular应用程序和HTML5推送状态。这是我当前的nginx配置服务器块。

server {
    server_name foo.com;

    set $s3_bucket        'foo.com.s3.amazonaws.com';

    proxy_http_version     1.1;
    proxy_set_header       Host $s3_bucket;
    proxy_set_header       Authorization '';
    proxy_hide_header      x-amz-id-2;
    proxy_hide_header      x-amz-request-id;
    proxy_hide_header      Set-Cookie;
    proxy_ignore_headers   "Set-Cookie";
    proxy_buffering        off;
    proxy_intercept_errors on;

    resolver               172.16.0.23 valid=300s;
    resolver_timeout       10s;

    location ~* ^/(assets|styles)/(.*) {
        set $url_full         '$1/$2';
        proxy_pass             http://$s3_bucket/live/$url_full;
    }

    location / {
        rewrite ^ /live/index.html break;
        proxy_pass http://$s3_bucket;
    }
}

我不假设这个配置。这一切都可能是完全错误的。

它确实“有效”。我可以去foo.com,网站服务,我可以导航,这一切都有奇效。但它不会加载任何不是/的URL。所有其他重定向到/,这是一个问题。

我做错了什么?所有帮助表示赞赏。

0 个答案:

没有答案