Я пытаюсь сервировать статический сайт через Cloudfront (и S3). У меня S3 bucket my-bucket
включен со статическим хостингом. NGINX направляет трафик в зависимости от пути. location /
, /beta/
, /static/app/
переходит в облачный фронт, поэтому я создал имя домена и путь к источнику & идентификатор источника для
my-bucket.s3.amazonaws.com / beta = S3-my-bucket / beta
my-bucket.s3.amazonaws.com/admin = S3-my-bucket / admin
my-bucket.s3.amazonaws.com = S3-my-bucket
И сопоставленное поведение
/ beta -> S3-my-bucket / beta
/ admin -> S3-my-bucket / admin
По умолчанию (*) -> S3-my-bucket
У меня следующая конфигурация Nginx
server {
listen 80 default_server;
server_name localhost;
keepalive_timeout 70;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;
location / {
proxy_pass http://XXXXXX.cloudfront.net;
proxy_set_header Host $host;
}
location /beta/ {
proxy_pass http://XXXXXX.cloudfront.net/beta/;
}
location /static/app/ {
rewrite ^/static/app/(.*)$ /$1 break;
proxy_pass http://XXXXXX.cloudfront.net;
}
}
Когда я пытаюсь открыть свой URL, который указывает на этот Nginx, я получаю
403 ERROR
The request could not be satisfied.
Bad request.
Generated by cloudfront (CloudFront)
Request ID: 3yYfFbg1ObQ4B-3oco1HYWK46CWh7E8XZOBVl_sdQ6rKMZ4JYZ_KeQ==
Но если я укажу конфигурацию Nginx на мой URL-адрес корзины proxy_pass http://my-bucket.s3-website-us-west-2.amazonaws.com
, как это
server {
listen 80 default_server;
server_name localhost;
keepalive_timeout 70;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;
location / {
proxy_pass http://my-bucket.s3-website-us-west-2.amazonaws.com/;
}
location /beta/ {
proxy_pass http://my-bucket.s3-website-us-west-2.amazonaws.com/beta/;
}
location /static/app/ {
rewrite ^/static/app/(.*)$ /$1 break;
proxy_pass http://my-bucket.s3-website-us-west-2.amazonaws.com;
}
}
все работает как положено.
Что мне нужно изменить, чтобы оно работало через облачный фронт?