首页 要闻娱乐军事情感奇闻搞笑社会体育游戏百科

tengine Tengine 常用模块使用介绍

2021-11-21 02:50

原标题:Tengine常用模块使用介绍

Tengine和Nginx

Tengine简介

2011年12月起:Tengine是淘宝发起的Web服务器项目。它在Nginx的基础上,增加了许多先进的功能和特性,以满足访问量大的网站的需求。天音的性能和稳定性已经在淘宝、天猫商城等大型网站上得到了很好的测试。其最终目标是构建一个高效、稳定、安全、易用的Web平台。

Nginx简介

Nginx是一个开源项目,是一个高性能的HTTP服务器和反向代理。也可以作为IMAP/POP的反向代理。通过简单的配置,可以实现高性能,占用较少的系统资源。Nginx最初是为了解决C10K问题而设计的,它非常轻量级,只支持事件模型。

特征

Nginx的特性

模块化设计,可扩展性好,可靠性高:master/worker支持热部署:更新配置文件、更改日志文件、更新服务器版本,无需停机。低内存消耗:保持活动连接模式下的10,000个非活动连接仅消耗250万内存。事件驱动、aio、mmapDOS机制只存在于2016-04-26 nginx-1.10.0版本

Tengine特性

继承Nginx-1.6.2的所有功能,兼容Nginx配置;动态模块加载支持。添加模块不再需要重新编译整个Tengine;支持SO_REUSEPORT选项,连接性能提升到官方nginx的三倍;它还支持HTTP v2协议和SPDY v3协议,可以同时使用这两种协议。流式上传到HTTP后端服务器或FastCGI服务器大大降低了机器的I/O压力;更强大的负载均衡能力,包括一致性哈希模块和会话保持模块,还可以对后端服务器进行主动健康检查,根据服务器状态自动上线和下线,动态分析上游出现的域名;输入过滤机制支持。通过使用这种机制,编写Web应用防火墙更加方便。设置后端失败时代理、memcached、fastcgi、scgi和uwsgi的重试次数。动态脚本语言Lua支持它。扩展函数非常高效和简单;支持管道和系统日志形式的日志和日志采样;支持按指定关键字采集天京的运行状态;将多个CSS和Java文件访问请求合并成一个请求;自动删除空白色字符和注释以减小页面大小,并根据CPU数量自动设置进程数和绑定CPU亲缘关系;监控系统的负载和资源占用,以保护系统;显示对运维人员更友好的错误信息,便于定位错误机器;更强大的反攻击模块;更方便的命令行参数,比如列出编译的模块和支持的指令;到期时间可以根据访问文件类型设置;

Tengine安装

下载地址:https://file.jichengguandao.com/uploads/2021-11/21/c3skrtfeif0.html

一个

2

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

# yum -y安装pcre-develop open SSL-develop zlib-develop

# ./configure

前缀=/usr/local

sbin-path=/usr/sbin/nginx

conf-path =/etc/nginx/nginx . conf

error-log-path =/var/log/nginx/error . log

http-log-path =/var/log/nginx/access . log

pid-path=/var/run/nginx.pid

lock-path=/var/run/nginx.lock

http-client-body-temp-path =/var/cache/nginx/client _ temp

http-proxy-temp-path =/var/cache/nginx/proxy _ temp

http-fastcgi-temp-path =/var/cache/nginx/fastcgi _ temp

http-uwsgi-temp-path =/var/cache/nginx/uwsgi _ temp

http-scgi-temp-path =/var/cache/nginx/scgi _ temp

用户=nginx

group=nginx

带-http_ssl_module

带-http_realip_module

带-http _ add _ module

带-http_sub_module

带-http_dav_module

带-http_flv_module

带-http _ MP4 _模块

带-http_gunzip_module

带-http_gzip_static_module

带-http_random_index_module

带-http_secure_link_module

带-http_stub_status_module

带-http_auth_request_module

带螺纹的

带流

带-stream_ssl_module

带-http_slice_module

带文件aio

带-http_v2_module

#制作&&制作安装

启动前配置:

一个

2

echo“export PATH = $ PATH:/usr/local/nginx/sbin”& gt;/etc/profile.d/nginx.sh

useradd-rnginx-s/sbin/nologin

mkdir/var/cache/nginx/client _ temp-PV

一、核心模块

1.主端配置

公约:

大部分模块的使用方式与nginx相同,nginx模块的使用可以参考nginx官方网站tengine。

语法:表示函数或选项,后跟语法

默认值:默认值

上下文:可以出现的上下文

参考文献:https://file.jichengguandao.com/uploads/2021-11/21/juayrehy4xu.html

参考文献:http://nginx.org/en/docs/

一、必要的常用配置

1.用户指定用于运行工作进程的用户和组

语法:用户用户;

默认:用户无人无人;

背景:主要

2.pid指定nginx进程的pid文件路径

yntax: pid文件;

默认值:

pid nginx.pid

背景:主要

3.单个工作进程可以打开的最大文件数

语法:worker _ rlimit _ nofile number

默认:-

背景:主要

二、性能优化相关配置

1.worker _ processes number | auto worker的进程数;一般来说,CPU内核的数量应该减少1

语法:worker _ processes number | auto

默认值:

worker _ processes 1;

背景:主要

2.worker _ cpu _ affinitypumask…将工作进程绑定到CPU

语法:worker _ CPU _ affinity cpumask…;

worker _ cpu _ affinity auto

默认:-

背景:主要

示例:

一个

2

双核cpu,启动八个进程

worker _ processes 8;

worker _ CPU _ affinity 0110011001100110;

8核cpu,启动8个进程

worker _ processes 8;

worker _ CPU _ affinity 10000000010000000100000000100000001000000001000000000001000000001000000000001;

8核cpu,启动2个进程

worker _ processes 2;

worker _ CPU _ affinity 101010100101010101;

3.worker_priority nice定义了工作流程的优先级。数字越小,优先级越高

相应的优先级为:100-139

语法:worker _ priority number

默认值:

worker _ priority 0;

背景:主要

c、调试定位问题

1.守护程序开启|关闭是否将nginx进程作为守护程序启动

语法:守护进程开启|关闭;

默认值:

守护进程打开;

背景:主要

2.master_process on | off是否使用master/worker模型启动nignx进程

语法:master _ process on | off

默认值:

master _ process on

背景:主要

3、error_log文件| stderr | syslog:服务器=地址|内存:大小

错误日志记录方法及其日志级别

一个

2

10

11

语法:error_log文件;

默认值:

error _ log log/error . log错误;

上下文:主,http,邮件,流,服务器,位置

方法:

文件/路径/到/某些_日志_文件;

Stderr:发送到错误输出;

Syslog:服务器=地址:发送到syslog服务器;

内存:大小:缓冲区大小

例如:

error_loglogs/error.lognotice

2.事件段配置

1.worker_connections数每个工作进程可以同时打开的最大连接数

语法:worker _ connections number

默认值:

工人_连接512;

背景:事件

最大并发数=最大连接数*工作进程数4

2.use方法表示处理并发连接请求时使用的方法

语法:使用方法;

默认:-

背景:事件

3.当accept_mutex on | off被启用时,这意味着让多个工作人员依次响应新请求并进行序列化

语法:accept _ mutex on | off

默认值:

accept _ mutex on

背景:事件

3.服务器段的常见配置

1、听地址

监听端口;

监听unix:路径

默认服务器:默认虚拟主机

Ssl:将服务仅限于ssl连接

积压:延迟队列的长度

接收缓冲区大小

Sndbuf:发送缓冲区大小

2.服务器名…主机名

语法:server _ name name…;

默认值:

server _ name

上下文:服务器

指示当前服务器的主机名;由一个或空个白色字符分隔的多个主机;

支持使用*任何长度的任何字符;

支持以~开头的正则表达式模式字符串;

应用策略:

第一,匹配准确;

左边,*通配符匹配;

*右侧通配符匹配;

正则表达式模式匹配;

例如:

服务器名www.example.com;

server _ name * .example.com

server _ name www . example . *;

服务器名~^..例子..$;

www.example.com mail.example.com

3.TCP_NODELAY选项是否通过打开|关闭tcp_nodelay为保持激活模式下的连接启用

语法:tcp _ nodelay on | off

默认值:tcp _ nodelay on

上下文:http,服务器,位置

4.sendfile on | off是否启用sendfile功能

语法:sendfile on | off

默认值:

发送文件;

上下文:http,服务器,位置,如果在位置中

4.路径相关配置

1.根路径设置web资源路径映射

语法:根路径;

默认值:

根html

上下文:http,服务器,位置,如果在位置中

例如:

一个

2

位置/i/

根/数据/w3;

}

2、locationuri { … }

语法:locationuri { … }

位置@名称{ … }

默认:-

上下文:服务器、位置

根据用户要求的URI匹配定义的位置。匹配时,请求将由相应位置块中的指令处理;

=: URIs完全匹配;

~:做正则表达式模式匹配,区分字符大小写;

~ *:做正则表达式模式匹配,不区分字符大小写;

~:匹配URI的左半部分,不区分字符大小写;

匹配优先级:=,~,~/~ *,无符号;

例如:

一个

2

位置=/{ 0

}

一个

2

位置/

}

一个

2

位置/文档/

}

一个

2

location^~/images/{

}

一个

2

位置~*。${

}

2.别名路径定义路径别名

语法:别名路径;

默认:-

背景:位置

例如:

一个

2

位置/i/

别名/数据/w3/images/;

}

3、错误_页面代码… ] uri

根据用户其他资源的http响应的状态代码重定向错误的页面

语法:error _ page code…]uri;

默认:-

上下文:http,服务器,位置,如果在位置中

有许多配置选项,这里介绍一下。有兴趣的话可以参考nginx或者Teengine的官方文件,这里不做过多介绍。这里有一些常用的模块,比如ssl、重写、gzip、fastcgi、防盗链、stasus等等

正式文件:

https://file.jichengguandao.com/uploads/2021-11/21/juayrehy4xu.html

http://nginx.org/en/docs/

二、腾金常用模块

1、模块ngx _ http _重写_模块

ngx _ http _ rewrite _ module模块可以使用正则表达式重定向请求url。

A.重写正则表达式替换重定向请求

根据正则表达式检查用户请求的URI,并在匹配时用替换指定的字符串替换它

存在于同一位置的多个重写规则将被从上到下逐一检查,并且可以使用标志来控制该循环功能

如果替换以http://或https://开头,替换结果将通过重定向直接返回给客户端

最后:重写完成后,停止当前位置当前uri的其他后续重写操作,改为新uri的新一轮处理;Break:重写完成后,停止对当前位置当前uri的其他后续重写操作;重定向:重写完成后,将重写后生成的新URL以临时重定向的方式直接返回给客户端,客户端请求新URL;永久:重写完成后,重写后生成的新URL以永久重定向的形式直接返回给客户端,客户端请求新URL;

B.是否启用重写日志

启用后,日志信息会发送到错误日志

语法:rewrite _ log on | off

默认值:rewrite _ log off

上下文:http,服务器,位置,如果

c、if{ …}条件判断机制

当满足条件时,执行配置块中的配置

条件:

比较表达式:

==, !=

~:模式匹配,区分大小写的字母;~ *:模式匹配,字符不区分大小写;!~:模式不匹配,字母区分大小写;!~ *:模式不匹配,字母不区分大小写;

文件和目录的存在性判断:

-f!文件d!-d:目录-e!-e:有-x,!-x:执行

例如:

一个

2

10

11

12

13

14

15

如果{

rewrite^$/msie/break;

}

if "){ 0

设置$ id $ 1;

}

如果{

return405

}

如果{

limit _ rate10k

}

如果{

return403

}

d、返回代码;停止处理并将指定的代码返回给客户端

语法:返回代码;

返回代码网址;

返回网址;

默认:-

上下文:服务器,位置,如果

E.设置$变量值用户定义变量

语法:设置$变量值;

默认:-

上下文:服务器,位置,如果

ngx_http_rewrite_module示例:

一个

2

#将172.18.4.70下的所有访问映像重定向到tupian目录

# vim/usr/local/nginx/conf/nginx . conf

位置/图像{

rewrite^/image//tupian/last;

rewrite^/image//tupian/最后;

返回403;

index.html指数;

}

测试效果:

一个

2

#添加测试页面

# cat/usr/local/nginx/html/image/index . html

图像

# cat/usr/local/nginx/html/tupian/index . html

图皮人的

if{ …}示例

一个

2

如果{

return405

}

2、模块ngx_http_gzip_module

过滤、压缩和传输指定类型的资源以节省带宽

gzip开|关;

启用或禁用gzip压缩响应消息;

语法:gzip on | off

默认:gzip关闭;

上下文:http,服务器,位置,如果在位置中

gzip_comp_level级别;

指定压缩比,1-9,默认值为1;

语法:gzip _ comp _ level

默认值:gzip _ comp _ level 1;

上下文:http,服务器,位置

gzip _ disable regex…;

Regex是匹配客户端浏览器类型的模式,这意味着不会对所有匹配的浏览器执行压缩响应;

语法:gzip _ disable regex…;

默认:-

上下文:http,服务器,位置

该指令出现在版本0.6.23中。

gzip_min_length长度;

触发压缩功能启用的响应消息的最小长度;

语法:gzip_min_length长度;

默认值:gzip _ min _ length 20

上下文:http,服务器,位置

gzip _ http _ version 1.0 | 1.1

启用压缩响应功能时,设置协议的最低版本;

语法:gzip _ http _ version 1.0 | 1.1

默认:gzip _ http _ version 1.1

上下文:http,服务器,位置

gzip _ types mime-type…;

指定仅执行压缩的资源内容类型;文本/html;是默认值;

语法:gzip _ types mime-type…;

默认值:gzip _ types text/html;

上下文:http,服务器,位置

gzip _ proxied off |过期|无缓存|无存储|私有| no _ last _ modified | no _ etag | auth | any…;

对代理的请求基于哪个属性来判断是否应该启用压缩功能;

语法:gzip _ proxied off |过期|无缓存|无存储|私有| no _ last _ modified | no _ etag | auth | any…;

默认值:gzip _ proxied off

上下文:http,服务器,位置

示例配置:

示例:

gzip on

gzip _ http _ version 1.0

gzip _ comp _ level 6;

gzip _ disable msie6

gzip _ min _ length 2;

gzip _ types text/纯文本/css text/xml应用程序/x-java应用程序/xml应用程序/json应用程序/Java-;

测试示例:

配置前:检查响应头消息中是否有gzip选项

配置后:检查响应头消息中是否有gzip选项

3、模块ngx_http_fastcgi_module

fastcgi_pass地址地址是fpm服务器监听的地址和端口;

示例:fastcgi 127 . 0 . 0 . 1:9000;

Fastcgi_index名称Fastcgi应用程序主页名称

参数值传递给fpm服务器的参数及其值

fastcgi _ cache _ path _ path keys _ zone = name:size;

路径:用于存储缓存文件数据的文件系统路径;

Max_size=size:定义此路径中用于存储缓存数据的大小空;

级别=#]:缓存目录级别定义;

级别=1:2

keys _ zone = name:size空之间的名称和大小,用于在内存中缓存k/v映射关系;

非活动=时间

注意:它只能在http上下文中定义

例如:

一个

fastcgi _ cache _ path/var/cache/nginx/client _ temp levels = 1:2 keys _ zone = one:10m;

存储格式:

一个

/var/cache/nginx/client _ temp/c/29/b7f 54 B2 df 7773722d 382 f 4809d 65029 c

Fastcgi_cache zone | off是否启用缓存,如果是,数据缓存在哪个缓存中

fastcgi_cache_key字符串定义了要使用的缓存键

例如:fastcgi _ cache _ key $ request _ uri

fastcgi _ cache _ methods get | head | post…缓存了哪些类型的请求相关数据

Fastcgi_cache_validtime为不同的响应代码设置其可缓存持续时间

注意:调用缓存时,至少应该指定三个参数

fastcgi_cache

fastcgi_cache_key

fastcgi_cache_valid

测试示例:

一个

2

# vim/usr/local/nginx/conf/nginx . conf

fastcgi _ cache _ path/var/data/nginx/cache levels = 1:2 keys _ zone = my cache:10minactive = 4m;

#以上选项必须在http上下文中

位置。PHP $ { 0

fastcgi _ pass 127 . 0 . 0 . 1:9000;

fastcgi _ cache mycache

fastcgi _ cache _ key $ request _ uri

fastcgi _ cache _ valid any10m

}

启用前检查:/var/data/nginx/缓存目录

启动后检查/var/data/nginx/cache目录

4、模块ngx_http_ssl_module

Ssl开|关是否启用当前虚拟主机的SSL功能

语法:ssl开|关;

默认值:ssl关闭;

上下文:http,服务器

Ssl_certificate文件当前虚拟主机使用的PEM格式的证书文件

语法:ssl_certificate文件;

默认:-

上下文:http,服务器

Ssl_certificate_key文件当前虚拟机使用的证书文件中公钥对的私钥文件路径语法:ssl_certificate_key文件;

默认:-

上下文:http,服务器

Ssl _ protocolsSSL协议版本

语法:ssl _ protocols

默认值:SSL _ protocol TLS v1 TLS v1 . 1 TLS v1 . 2;

上下文:http,服务器

Ssl_session_cache off | none |]表示Ssl会话的缓存机制

语法:SSL _ session _ cache off | none |];

默认值:ssl _ session _ cache none

上下文:http,服务器

内建:使用openssl的内置缓存机制,这是每个工作人员独有的;

Shared:所有工作进程共享的缓存;

Name:缓存空之间的名称;

size:cache空之间的大小;每1MB内存空可以缓存4000个会话

Ssl _ session _ time out SSL会话超时期限是指SSL会话缓存中缓存条目的有效期限

语法:ssl _ session _ timeout

默认值:ssl _ session _ timeout 5m

上下文:http,服务器

示例:

简介:请查看我的其他博客,了解证书的使用情况。

一个

2

10

11

12

13

14

# vim /etc/nginx/nginx.conf

服务器{

听443ssl

服务器名www.ops.com;

SSL _ certificate/usr/local/nginx/SSL/nginx . CRT;

SSL _ certificate _ key/usr/local/nginx/SSL/nginx . key;

ssl_session_cache共享:SSL:1m;

ssl _ session _ timeout 5m

位置/

根html

index.html·index.htm指数;

}

}

# nginx -s重新加载

查看权限:

4、模块ngx_http_referer_module

valid _ referers none | blocked | server _ name | string…

推荐人:定义法律数据。本模块用于定义什么是合法的

语法:valid _ referers none | blocked | server _ name | string…;

默认:-

上下文:服务器、位置

无表示请求消息头中没有引用者头

Blocked表示请求消息的引用头没有值

Server _ names表示其值是主机名

例:根据上面的定义,如果是非法的,就返回403

一个

2

有效的推荐人无被阻止的服务器名

*.zx.com zx。* www . zx . org/gallery/

~.谷歌。;

如果{

return403

}

5、模块ngx _ http _ stub _ status _模块

Status_module:用于输出nginx的基本状态信息

示例:

一个

2

# vim /etc/nginx/nginx.conf

位置/状态{

stub_status打开;

}

参观和测试:

每个参数的含义:

Active connection:活跃连接数accepts:已经接受的客户端请求的总数量handled:已经处理的数量request:客户端发来的总请求数量Reading:处于读取客户端请求报文首部的连接数Writing:处于向客户端发送响应报文过程的连接数Waiting:处于等待客户端发出请求的空闲请求连接数

相关阅读
孔卡年薪多少?孔卡年薪排名世界第三?
无忧学生网:孔卡年薪多少?孔卡为什么要走和工资有关系吗?近日有网友曝光称孔卡年薪排名世界第三。恒大俱乐部方面也表示,孔卡的年薪并不像外界传说的那样高达千万欧元,据俱乐部内部人士透露,孔卡的月薪为200万巴西里尔(约合830万元人民币)。新闻报道:孔卡年薪排名世界第三按照《世界报》的说法,孔卡的收入是可以与世界级巨星相提并论的,他的年薪达到1040万欧元,仅仅比年薪1050万欧元的梅西少10万欧元,22在看 07-07
张四一老婆 专访杜德伟:新歌送给儿子 永远把老婆放第一位
“好想把你抱紧”,这是杜德伟新歌《抱紧处理》的歌词,也是他送给儿子的礼物。2016年10月,杜德伟升级做了爸爸,这对他来说既新鲜,又亢奋,“小孩出生前已有充份的心理准备,但还是觉得很神奇!很幸运到这个阶段依然会有很多新鲜感,孩子带给我的感觉就是重头再活一次”。在这首歌曲的宣传海报上,杜德伟身穿西装抱着一个婴儿,尽管表情依旧酷酷的,但难掩父爱温情。“因为刚刚做父亲,而这首歌曲又是为我的宝宝唱的,所以21在看 07-07
乐山公安巡逻队员七夕节抱女友骑警用自平车被辞退
7月29日,网友在四川乐山网上论坛上发布一张警察巡逻队员抱女友骑风火轮(自平衡智能电动车)的照片引发网友热议。照片中,一名男子抱着女友一起乘坐“风火轮御风而行”,看似十分甜蜜。就在29日下午,乐山市中区警方回访该事件称,该区综治巡逻大队队员徐某未经允许,擅自将用于巡逻执勤的自平车用于非警务活动并造成恶劣影响,已根据相关条例将其辞退。男子上穿短袖T恤、下穿短裤、脚穿拖鞋,女子穿一条花连衣裙,自平车为11在看 07-07
侯勇离婚 侯勇为何离婚迎娶潘雨辰
侯勇是著名的男演员,但是侯勇离婚的消息还是在网上传的沸沸扬扬,虽然侯勇已经开始了第二段婚姻。那么下面就和康网小编一起来了解下吧。知名博主长春国贸曝光了侯勇前妻的近照,引来网友围观。据长春国贸介绍,侯勇的前妻名叫沈蓉,和侯勇是南京艺术学院表演系的同班同学,上大学时便倾心相恋,毕业后的几年沈蓉便在影坛很快崭露头角,并获得过飞天奖最佳女主角奖。沈蓉此前也是一名演员,为了侯勇将来能有更大的发展,她毅然放弃19在看 07-07
余文乐与旧爱合影 揭秘余文乐旧爱黄伊汶资料
[导读] 近日,余文乐与旧爱合影,被旧爱挽手臂拍合影显亲密,余文乐和黄伊汶分手六年后还对对方念念不忘,随后,余文乐旧爱是谁备受关注,为大家揭秘一下有关余文乐旧爱黄伊汶资料及两人恋爱分手细节....点击图片↓进入下一页余文乐与旧爱合影 揭秘余文乐旧爱黄伊汶资料 余文乐与旧爱合影,被旧爱挽手臂晒合影十分亲密,据悉,余文乐和旧爱黄伊汶分手六年后还依然难以忘怀,去年与吴雨霏拍拖期间便主动向黄伊汶求复合,之18在看 07-07

热文排行