Я создал простой статический сайт, который я обслуживаю с помощью nginx (из докера). В настоящее время я пытаюсь внедрить некоторые передовые методы, включая gzip.
Я использовал пример конфигурации, которую нашел в Интернете, чтобы настроить свою собственную конфигурацию. Gzip работает для большинства типов, кроме css...
я использовал завиток для тестирования:
curl -H "Принять кодировку: gzip" -I localhost:8400 производит:
HTTP/1.1 200 ОК
Сервер: nginx/1.20.2
Дата: среда, 05 января 2022 г., 12:35:06 по Гринвичу
Тип содержимого: текст/html
Соединение: Keep-alive
Последнее изменение: четверг, 30 декабря 2021 г., 13:24:15 GMT
Варьировать: Accept-Encoding
ETag: W/"61cdb2ff-ff5"
Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval' *.transistories.org; кадр-источник «я»; объект-источник 'я'
Параметры X-Frame: SAMEORIGIN
X-Content-Type-Options: nosniff
Строгая транспортная безопасность: max-age=31536000;
X-XSS-защита: 1; режим = блок
Кодировка содержимого: gzip
пока curl -H "Принять кодировку: gzip" -I localhost:8400/css/main.css производит:
HTTP/1.1 200 ОК
Сервер: nginx/1.20.2
Дата: среда, 05 января 2022 г., 12:35:02 по Гринвичу
Тип содержимого: текст/css
Длина контента: 8279
Соединение: Keep-alive
Последнее изменение: среда, 05 января 2022 г., 10:46:33 по Гринвичу
Варьировать: Accept-Encoding
ETag: "61d57709-2057"
Истекает: сб, 29 января 2022 г., 13:38:58 по Гринвичу
Кэш-контроль: max-age=2073600
Прагма: общедоступная
Cache-Control: max-age=2073600, общедоступный
Допустимые диапазоны: байты
Основной файл конфигурации:
пользователь nginx;
рабочие_процессы авто;
error_log /var/log/nginx/error.log уведомление;
pid /var/run/nginx.pid;
События {
worker_connections 1024;
}
http {
включить /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$статус $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
журнал_доступа /var/log/nginx/access.log основной;
отправить файл включен;
tcp_nopush включен;
keepalive_timeout 65;
gzip включен;
gzip_vary включен;
gzip_proxy любой;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_версия 1.1;
gzip_min_length 256;
gzip_types
приложение/атом+xml
приложение/гео+json
приложение/javascript
приложение/x-javascript
приложение/json
приложение/ld+json
приложение/манифест+json
приложение/rdf+xml
приложение/rss+xml
приложение/xhtml+xml
приложение/xml
шрифт/eot
шрифт/otf
шрифт/ttf
изображение/svg+xml
текст/CSS
текст/javascript
текст/js
текст/обычный
текст/xml;
gzip_disable "msie6";
server_tokens отключены;
включить /etc/nginx/conf.d/transistories.conf;
}
Включенный файл конфигурации:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера локальный хост;
#кодировка koi8-r;
access_log /var/log/nginx/host.access.log основной;
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *.transistories.org; frame-src 'self'; object-src 'self'";
add_header X-Frame-Options «SAMEORIGIN» всегда;
add_header X-Content-Type-Options «нюхать» всегда;
add_header Strict-Transport-Security "max-age=31536000;" всегда;
add_header X-XSS-защита "1; режим = блок";
расположение ~* \.(?:ico|css|js|gif|jpe?g|png|eot|woff2?|ttf|svg)$ {
корень /usr/share/nginx/html;
истекает 24 дня;
add_header Публичный прагма;
add_header Cache-Control "max-age=2073600, public";
}
место расположения / {
корень /usr/share/nginx/html;
индекс index.html;
}
страница_ошибки 404 /404.html;
}
Если это актуально; Dockerfile, который я использую:
Файлы css генерируются из scss с использованием node-sass.
ОТ node:current-alpine3.14 AS Builder
РАБОЧИЙ КАТАЛОГ /usr/src/app
КОПИРОВАТЬ пакет*.json ./
ЗАПУСТИТЬ установку npm
КОПИРОВАТЬ активы ./активы
КОПИРОВАТЬ gulpfile.js .
КОПИРОВАТЬ источник ./источник
ЗАПУСК npm запустить сборку: prod
ЗАПУСК npm запустить карту сайта
ЗАПУСК npm запустить rss
ОТ nginx: последняя
КОПИРОВАТЬ --from=builder /usr/src/app/build /usr/share/nginx/html
скопируйте nginx/nginx.conf /etc/nginx
скопируйте nginx/conf.d /etc/nginx/conf.d
Любые идеи, почему это может происходить, и как я могу это решить?
Заранее спасибо!