1.基本参数设置
在 Nginx 中,你可以配置静态文件的访问。静态文件通常包括如图片、CSS、JavaScript 文件等。开启 Nginx 的静态文件服务是非常简单的,你需要确保你的 Nginx 配置文件中已经正确地设置了静态文件的目录。
以下是一个基本的示例来展示如何配置 Nginx 以提供静态文件服务:
-
打开 Nginx 的配置文件,通常是
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
,这取决于你的安装和操作系统。 -
在
server
块内,定义一个 location 块来指定静态文件的位置。例如:
server {
listen 80;
server_name localhost;
# 设置根目录为 /data/html,你可以根据实际情况修改为你的静态文件所在路径
root /data/html;
# 对于直接请求文件或目录的处理
location / {
index index.html index.htm; # 如果请求的 URI 是一个目录,则返回这个目录下的 index.html 或 index.htm
autoindex on; # 如果请求的目录下没有 index.html 或 index.htm,则列出该目录的内容
}
# 可选的额外配置,如日志格式、错误页面等
}
-
完成配置后,检查配置文件是否有语法错误:
nginx -t
如果一切正常,Nginx 将会告诉你配置文件是有效的。
-
如果配置文件正确无误,那么重启 Nginx 使新的配置生效:
sudo service nginx restart
2.压缩静态资源提高传输效率
gzip_static配置优先级高于gzip。
开启nginx_static后,对于任何文件都会先查找是否有对应的gz文件。
为了提高网站性能和加载速度,可以通过配置 Nginx 来启用对静态资源的压缩功能。Nginx 自身支持 gzip 压缩,可以减少传输的数据量,从而加快网页加载速度。下面是启用 gzip 压缩的基本配置示例:
-
打开 Nginx 的配置文件,通常是
/etc/nginx/nginx.conf
或者/etc/nginx/sites-available/default
。 -
在
http
或者server
块中添加 gzip 相关配置。下面是一个例子:
http {
...
# 启用 gzip 压缩
gzip on; # 开启gzip压缩功能
# 压缩级别(1-9),数值越大压缩比越高,但是CPU消耗也越大
gzip_comp_level 6;
# 压缩前的最小文件大小
gzip_min_length 1k;
# 允许压缩的响应类型
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/json;
# 不缓存未压缩的数据
gzip_vary on;
}
server {
...
# 如果需要针对特定location启用,也可以在这里设置
location / {
...
gzip on;
# 重复 http 区块中的配置或进行微调
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/json;
}
}
-
保存并关闭配置文件后,需要验证配置是否正确:
nginx -t
如果配置正确,Nginx 将会报告测试成功。
-
最后,重启 Nginx 使新配置生效:
sudo service nginx restart
请注意,gzip 压缩功能可能会增加服务器的 CPU 使用率,因此在高负载环境下需要谨慎使用。另外,现代浏览器普遍支持 gzip 压缩,但是仍然需要确保客户端支持此功能。
如果你的站点有大量的静态资源,并且这些资源经常被请求,考虑使用预压缩(例如使用 .gz 文件)以及 HTTP/2 的 Server Push 功能来进一步优化性能。同时,可以考虑使用 CDN 来缓存和分发这些资源,减少源站的压力。
3.设置范例
# 主要是下方的gizp配置哦,直接复制粘贴就可以使用啦,亲测有效哦
gzip on; # 开启gzip压缩
gzip_min_length 4k; # 小于4k的文件不会被压缩,大于4k的文件才会去压缩
gzip_buffers 16 8k; # 处理请求压缩的缓冲区数量和大小,比如8k为单位申请16倍内存空间;使用默认即可,不用修改
gzip_http_version 1.1; # 早期版本http不支持,指定默认兼容,不用修改
gzip_comp_level 2; # gzip 压缩级别,1-9,理论上数字越大压缩的越好,也越占用CPU时间。实际上超过2的再压缩,只能压缩一点点了,但是cpu确是有点浪费。因为2就够用了
# 压缩的文件类型 MIME类型
gzip_types text/plain application/x-javascript application/javascript text/javascript text/css application/xml application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/x-woff font/ttf;
gzip_vary on; # 是否在http header中添加Vary: Accept-Encoding,一般情况下建议开启
4.总结
zip压缩确实在vue这种富客户端的程序中,能够非常有效的解决网站资源的传输压力。