当前位置: 首页 > news >正文

Nginx基础入门-web模块

连接模块

连接模块:http_stub_statu_module,展示用户和nginx链接数量信息。

查询是否安装:

nginx -V 2>&1 | grep stub_status 

启动状态模块

配置状态模块

vim /etc/nginx/conf.d/default.conf #某一个网站server {
....
location /nginx_status { #启用该模块
stub_status;
allow all;
}
.....
}systemctl restart nginx

访问结果

Active connections: 22	#当前活动的连接数
server accepts handled requests	 #服务器接受处理请求 
17		#总连接数connection(TCP)
17		#成功的连接数connection (TCP)
24 	        #总共处理的请求数requests(HTTP)
Reading: 2	        #读取客户端Header的信息数	     请求头
Writing: 1		#返回给客户端的header的信息数	 响应头
Waiting: 19	        #等待的请求数,开启了keepalive

随机主页

随机主页:random_index_module,将主页设置成随机页面,是一种微调更新机制。

启动随机主页模块

mkdir /app #创建主页目录
#创建多个主页
server{ location / {#root   /usr/share/nginx/html;#index  index.html index.htm;root /app;random_index on; #启动随机主页
}
}systemctl restart nginx#请注意隐藏文件并不会被随机选取

替换模块

替换模块:sub_module,如果我们用模板生成网站的时候,因为疏漏或者别的原因造成代码不如意,但是此时因为文件数量巨大,不方便全部重新生成,那么这个时候我们就可以用此模块来暂时实现纠错。另一方面,我们也可以利用这个实现服务器端文字过滤的效果。

启动替换模块

vim /etc/nginx/conf.d/default.conf方法一
server {
sub_filter nginx 'apache'; #替换模块  将nginx  替换成 apache
sub_filter_once on; #单次替换 开启
location / {
root   /usr/share/nginx/html;
index  index.html index.htm;
}方法二
1 准备一个被替换的java脚本
vim /usr/share/nginx/html/hello.js 
2 主页插入按钮
vim /usr/share/nginx/html/index.html
3 启动替换
vim /etc/nginx/nginx.confsub_filter nginx 'apache';
sub_filter </head> '</head><script type="text/javascript" src="hello.js"></script>';
sub_filter_once off;4 重启服务,测试页面。

文件读取

文件读取:ngx_http_core_module,nginx的优化模块

语法:

Syntax: 	sendfile on | off;
Default: 	sendfile on;
Context: http, server, location, if in locationSyntax: 	tcp_nopush on | off;
Default: 	tcp_nopush off;
Context: http, server, locationSyntax: 	tcp_nodelay on | off;
Default: 	tcp_nodelay on;
Context: http, server, location

原理介绍

使用 sendfile()来进行网络传输的过程:硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈sendfile() 不但能减少切换次数而且还能减少拷贝次数。使用tcp_nopush()网络传输效率提升当包累计到一定大小后再发送。使用tcp_nodelay()数据包立即发送出去。
开启或关闭nginx使用TCP_NODELAY选项的功能。 这个选项仅在将连接转变为长连接的时候才被启用。
TCP_NODELAY是禁用Nagle算法,即数据包立即发送出去。
由于Nagle和DelayedACK的原因,数据包的确认信息需要积攒到两个时才发送,长连接情况下,奇数包会造成延时40ms,所以tcp_nodelay会将ack立刻发出去。 如果不在长连接时,可以关闭此模块,因为ack会被立刻发出去。

启用文件读取模块

#某个网站或全部网站的配置文件server {
...
location /video/ {sendfile        on;tcp_nopush  on;
}
...
}
默认启动,无需验证

文件压缩

文件压缩:ngx_http_gzip_module,启动该模块,使文件传输前进行压缩,提升传输效率。

语法:

Syntax: 	gzip on | off;
Default: 	gzip off;
Context: http, server, location, if in locationSyntax: 	gzip_comp_level level;
Default: 	gzip_comp_level 1;(1~9)
Context: http, server, locationSyntax: 	gzip_http_version 1.0 | 1.1;
Default: 	gzip_http_version 1.1;
Context: http, server, location

启动压缩文件模块

http { #在http标签中启动该功能gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; 
gzip_static on; #gzip_static on;# nginx对于静态文件的处理模块systemctl restart nginx

页面缓存

页面缓存:ngx_http_headers_module,expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求要配置expires,可以在http段中或者server段中或者location段中加入。 Nginx(expires 缓存减轻服务端压力)

语法

Syntax: 	expires [modified] time;expires  epoch | max | off; epoch:指定“Expires”的值为 1 max:指定“Expires”的值为10年。-1:指定“Expires”的值为当前服务器时间-1s,即永远过期。off:不修改“Expires”和"Cache-Control"的值Default: 	expires off;
Context: http, server, location, if in location

原理

无缓存,每次访问服务器,均是全文传输。 开启缓存可以加速浏览网站。

启动缓存模块

vim /etc/nginx/conf.d/default.conf location / {root   /usr/share/nginx/htmlindex  index.html index.htm;expires 24h;}

5 再次浏览页面,观察响应头中出现服务器回复的缓存时间

防盗链

防盗链:ngx_http_referer_module

语法:

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

日志原理

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';日志格式中的http_referer是记录,访问点引用的URL。也就是超链接的上一级地址。
通过这段地址,可以发现一种网络行为——盗链。非法盗链会影响站点的正常访问。
通过http_referer模块可以控制这一点。防止非法盗链现象。

启动防盗链功能

#某个网站location / {root   /ts.com;index  index.html index.htm;valid_referers none blocked *.ts.com;if ($invalid_referer) {return 403;}}希望某些网站调用超链接location / {root   /a.com;index  index.html index.htm;valid_referers none blocked *.a.com        server_name  192.168.100.*  ~tianyun ~\.google\. ~\.baidu\.   b.com;if ($invalid_referer) {return 403;}}

http://www.dtcms.com/a/550119.html

相关文章:

  • 从零开始的云原生之旅(七):ConfigMap 和 Secret 配置管理
  • 潍坊企业网站设计怎么注册一个自己的品牌
  • 展示网站欣赏wordpress 官网
  • C++:const 的空间,常量也能占内存?
  • 学习FreeRTOS(互斥量)
  • 网站如何进行优化设计高端网站官网
  • 江苏五星建设网站长沙网页设计培训找沙大计教育预约网址
  • 蓝牙钥匙 第18次 蓝牙技术在物联网中的定位:与NFC、UWB和蜂窝网络的对比分析与协同发展
  • 办公室无缝访问海外AWS:中国企业全球化数据协作的组网之道
  • 【Rust】路由匹配与参数提取:从 match 语句到 axum 的类型魔法
  • 滕州做网站哪家好高效完成网站建设的步骤
  • 鸿蒙NDK开发实战指南:从ArkTS到C/C++的高性能桥梁
  • 烟台规划网站做个爬架网站如何做
  • rust实战
  • 制作一个网站需要多少钱什么软件做网站
  • 烟台seo网站推广用一段话来解释网站建设
  • Appium使用指南与自动化测试案例
  • 做代理记账网站企业网站托管服务公司
  • 注册网站域名需要什么资料医疗器械杭州十大科技公司排名
  • 鸿蒙系统(HarmonyOS)调研报告
  • 鸿蒙DFX(Design for X)子系统解析:构建高可靠性应用的全套工具
  • 盈世企业邮箱山西网络营销seo
  • python实现Latex格式的公式转OMML并写入word
  • 建网站权威机构沛县建设工程交易网
  • 平衡边缘计算场景下模型推理延迟与数据传输延迟
  • Java内部类内存泄露深度解析:原理、场景与根治方案(附GC引用链分析)
  • TP框架网站的中英文切换怎么做网店怎么做
  • 北京网站建设公司东为响应式网站做mip
  • wordpress登录修改整站优化排名
  • 广州正规网站制作维护wordpress按分类调用文章