我正在通过 nginx 提供一个静态网站,该网站在基于 nginx:alpine 基础映像的 docker 容器上运行。
我的DockerFile:
FROM nginx:alpine
COPY --from=angular-built app/dist/dayTwoApp /usr/share/nginx/html
COPY ./default.conf /etc/nginx/conf.d/default.conf
default.conf 文件:
server {
listen 80;
gzip on;
gzip_vary on;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /usr/share/nginx/html;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}
我看到了变化:接受编码来自所提供服务的 html 文件的响应中的标头(见下文)。
但由于某种原因,我没有在 js 和 css 响应中看到标题。
(*)无效的相关参考:
https://stackoverflow.com/questions/15999606/enable-gzip-compression-with-nginx
https://stackoverflow.com/questions/6637678/set-vary-accept-encoding-header-nginx
答复详情:
html 文件:
js 文件(也适用于 css):
答案1
请尝试添加到您的 nginx 配置:
gzip_proxied any
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/rss+xml
image/svg+xml;
(只有“text/html”类型的响应才会总是被压缩。