千家信息网

Nginx系列之静态服务

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,博文大纲:1)静态资源类型2)静态资源场景3)静态资源配置语法4)静态资源文件压缩5)静态资源浏览器缓存6)静态资源防盗链1)静态资源类型Nginx作为静态资源web服务器部署配置,传输非常的高效,常
千家信息网最后更新 2025年02月03日Nginx系列之静态服务

博文大纲:
1)静态资源类型
2)静态资源场景
3)静态资源配置语法
4)静态资源文件压缩
5)静态资源浏览器缓存
6)静态资源防盗链

1)静态资源类型

Nginx作为静态资源web服务器部署配置,传输非常的高效,常常用于静态资源处理、请求、动静分离!

非服务器动态运行生成的文件属于静态资源!

类型种类
浏览器端渲染HTML、CSS、JS
图片JPEG、GIF、PNG
视频FLV、MP4
文件TXT、任意下载文件

2)静态资源场景

静态资源传输延迟最小化!

如图:

3)静态资源配置语法

1)文件读取高效-->sendfile
Syntax:sendfile on | off ;Default:sendfile off ;Context:http、server、location、if in location ;
2)提高网络传输效率-->nopush
Syntax:tcp_nopush on | off ;Default:tcp_nopush off ;Context:http、server、location ;作用: sendfile开启情况下,  提⾼⽹络包的'传输效率';
3)与 tcp_nopush 之对应的配置 tcp_nodelay
Syntax: tcp_nodelay on  |   off ;Default:    tcp_nodelay on ;Context:http,   server, location ;作⽤: 在keepalive连接下,提⾼⽹络的传输'实时性';

4)静态资源文件压缩

Nginx 将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度。

1)gzip压缩配置语法
Syntax: gzip    on  |   off ;Default:    gzip    off ;Context:    http,   server, location,   if  in  location ;作⽤:传输压缩;
2)gzip压缩比率配置语法
Syntax: gzip_comp_level level ;Default:    gzip_comp_level 1 ;Context:    http,   server, location ;作⽤:压缩本身⽐较耗费服务端性能 ;
3)gzip压缩协议版本
Syntax: gzip_http_version   1.0 |   1.1 ;Default:    gzip_http_version   1.1 ;Context:    http,   server, location ;作⽤: 压缩使⽤在http哪个协议,  主流版本1.1 ;
4)扩展压缩模块
Syntax: gzip_static on  |   off |   always ;Default:    gzip_static off ;Context:    http,   server, location ;作⽤: 预读gzip功能 ;
5)图片压缩案例
[root@nginx ~]# mkdir -p /soft/code/images[root@nginx ~]# vim /etc/nginx/conf.d/static_server.confserver  {        listen  80;        server_name  192.168.1.10;        sendfile on;        access_log /var/log/nginx/static_access.log main;        location ~ .*\.(jpg|gif|png)$   {                gzip on;                gzip_http_version 1.1;                gzip_comp_level 2;                gzip_types text/plain application/json  application/x-javascript app lication/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png;                root /soft/code/images;                }}[root@nginx ~]# nginx -t[root@nginx ~]# nginx -s reload 

由于图片的压缩效果不是太好,所以这里只附上配置!

6)文件压缩案例
[root@nginx ~]# mkdir -p /soft/code/doc[root@nginx ~]# vim /etc/nginx/conf.d/static_server.confserver  {        listen  80;        server_name  192.168.1.10;        sendfile on;        access_log /var/log/nginx/static_access.log main;        location ~ .*\.(txt|xml)$       {                gzip on;                gzip_http_version 1.1;                gzip_comp_level 2;                gzip_types text/plain application/json  application/x-javascript app lication/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png;                root /soft/code/doc;                }}[root@nginx ~]# nginx -t[root@nginx ~]# nginx -s reload 
1)没有启用gzip文件压缩

2)启用gzip文件压缩

5)静态资源浏览器缓存

HTTP协议定义的缓存机制(如: Expires; Cache-control 等)

1)浏览器无缓存

浏览器请求-->无缓存-->请求web服务器-->请求响应-->呈现

2)浏览器有缓存

浏览器请求->有缓存->校验过期->是否有更新->呈现校验是否过期 Expires HTTP1.0, Cache-Control(max-age) HTTP1.1协议中Etag头信息校验 Etag ()Last-Modified头信息校验 Last-Modified (具体时间)
1)缓存配置语法expires
Syntax: expires [modified]  time ;Default:    expires off ;Context:    http,   server, location,   if in location ;作⽤: 添加Cache-Control Expires头 ;
2)配置静态资源缓存
[root@nginx conf.d]# vim static_server.conf server  {        listen  80;          server_name  192.168.1.10;        sendfile on;        access_log /var/log/nginx/static_access.log main;        location ~ .*\.(txt|js|css|html)$ {                root /soft/code/doc;                expires 1h;        }        location ~ .*\.(jpg|gif|png)$ {                root /soft/code/images;                expires 7d;        }}[root@nginx conf.d]# nginx -t[root@nginx conf.d]# nginx -s reload

浏览器测试效果:

3)配置静态文件不缓存
[root@nginx conf.d]# vim static_server.confserver  {        listen  80;        server_name  192.168.1.10;        sendfile on;        access_log /var/log/nginx/static_access.log main;        location ~ .*\.(txt|js|css|html)$ {                root /soft/code/doc;                add_header Cache-Control no-store;                add_header Pragma no-cache;        }        location ~ .*\.(jpg|gif|png)$ {                root /soft/code/images;                expires 7d;        }}[root@nginx conf.d]# nginx -t[root@nginx conf.d]# nginx -s reload

浏览器测试效果:

6)静态资源防盗链

盗链指的是在⾃⼰的界⾯展示不在⾃⼰服务器上的内容,通过技术⼿段获得他⼈服务器的资源地址,绕过别⼈资源展示⻚⾯,在⾃⼰⻚⾯向⽤户提供此内容,从⽽减轻⾃⼰服务器的负担,因为真实的空间和流量来⾃别⼈服务器;

防盗链设置思路: 区别哪些请求是⾮正常⽤户请求;

基于http_refer 防盗链配置模块:

Syntax: valid_referers  none    |   blocked |   server_names    |   string  ...;Default:    -Context:    server, location

另一台nginx服务器(初始的情况),编写html文件:

[root@nginx02 conf.d]# vim /usr/share/nginx/html/dl.html                        pachong                                [root@nginx02 conf.d]# nginx -t [root@nginx02 conf.d]# nginx -s reload

第一台服务正常访问:

第二胎服务器盗用第一台服务器的图片:

2)启用防盗链
[root@nginx conf.d]# vim static.confserver {        listen 80;        server_name 192.168.1.10;        valid_referers none blocked 192.168.1.10;        location ~ .*\.(jpg|gif|png)$ {                if ($invalid_referer) {                        return  403;                        break;                }                root /soft/code/images;        }}[root@nginx conf.d]# nginx -t[root@nginx conf.d]# nginx -s reload

再次访问第二台服务器:

----------本文到此结束,感谢阅读--------

资源 静态 服务 文件 服务器 配置 缓存 浏览器 浏览 传输 语法 防盗 图片 效果 类型 信息 内容 功能 场景 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器ip地址分配 云开发数据库请求都放云函数吗 互联网科技外包 文科生学网络技术 画饭圈乱象绘网络安全字 计算机网络技术技能训练 停用服务器管理器 天津工业软件开发收费 成都网络安全饮酒协会 网络安全陈荣峰被判刑多久 redis数据库适应场景 学前资助网络安全自查报告 郑州哪个区有软件开发职位 高并发服务器发展趋势 远程服务器怎么管理工具 软件开发人员需要什么人员 软件开发不能用自己手机吗 电动助力转向系统软件开发 服务器被黑客创建 徐汇区口碑好的软件开发收费标准 网络安全的风口 手机打开拼多多显示服务器有问题 竹溪公司软件开发专业服务 如何做数据库cdm模型 数据库用什么软件做课程设计 数据库时间长了会死机 复古传奇什么时候开服务器 软件开发套路有哪些 关于计算机网络技术的修养准则 请启动服务器管理器是什么意思
0