Подтвердить что ты не робот

Nginx Proxy Pass S3 специальный html файл

Я там, прежде чем у меня были файлы на моем локальном хосте, и я смог отлично их обслуживать. Теперь я переместил свои статические файлы на S3, но я хочу обслуживать файл start.html стартера с пользовательским доменом. Из index.html должно быть возможно перейти к другому .html.

До сих пор я получил:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    include snippets/letsencrypt.conf;
    include snippets/ssl-params.conf;

    charset   utf-8;

    server_name mydomain;

    location / {


 proxy_set_header       Host 's3-eu-west-1.amazonaws.com';
        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_intercept_errors on;
        set $indexfile         "s3-eu-west-1.amazonaws.com/myprod-bucket/static/js/frontend/build_v0.5/";
        proxy_pass             https://$indexfile;

        # expires 1y;
        log_not_found off;

        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd_finder;
    }

}

Я не могу найти примеры, которые работают для моего дела, что я делаю неправильно?

UPDATE: Я немного изменил это на основе qaru.site/info/458321/..., и я начал получать:

Refused to execute script from '../vendor.5ad3d736.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.

и

Resource interpreted as Stylesheet but transferred with MIME type text/html: "../styles/main.b812e04a.css".

4b9b3361

Ответ 1

В типе содержимого сценария прокси указывается исходный сервер (S3 в этом случае), если он не переопределен. Вы можете указать типы mime на объектах S3 при их загрузке. Если вы сделаете это через веб-интерфейс S3, убедитесь, что вы не снимите флажок "Объяснять типы контента автоматически". Инструменты AWS cli также автоматически определяют типы mime, если не указано иное. Если вы используете что-то еще для загрузки файлов, вам необходимо консультировать соответствующее руководство по инструменту /API.

Также вы можете обслуживать веб-сайт непосредственно с S3, см. Хостинг статического веб-сайта на Amazon S3

Ответ 2

Не уверен, что это все еще актуально для вас, но я предлагаю вам обслуживать ваши CSS и другие статические файлы непосредственно с S3, а не через ваш Nginx. То есть, покажите index.html с помощью proxy_pass, как теперь, но ссылки на файлы CSS и JS внутри вашего index.html должны быть абсолютными, а ваш ведро S3 - как домен.

Это позволит решить вашу проблему здесь и будет лучше по другим причинам, таким как:

  • Вы снижаете затраты центрального процессора и сети на сервере Nginx.
  • Вы будете обслуживать свой сайт быстрее, не пройдя свой собственный сервер для каждого статического запроса файла.
  • S3 предлагает шифрование, сжатие, возможность добавления CDN и многих других полезных функций. Если у вас нет веских причин пройти через ваш собственный сервер, я бы избегал этого.

Обратите внимание, что ваши пользователи будут просматривать ваш сайт через ваш собственный домен, это только файлы CSS и JS, которые будут обслуживаться из домена S3.