生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

Nginx基础入门

6月10日 飞虹塔投稿
  1、Nginx简介百度解释:Nginx是一款轻量级的Web服务器反向代理服务器及电子邮件(IMAPPOP3)代理服务器,在BSDlike协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  总结:Nginx(enginex)是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,能够实现动静分离技术(动态请求和静态请求),也是一个IMAPPOP3SMTP服务器,1。1、相关名词解释
  HTTP:HTTP的服务器端实现程序有httpd、nginx等,而且nginx支持高并发!HTTP
  反向代理:反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。反向代理
  SMTP:SMTP是一种提供可靠且有效的电子邮件传输的协议。(非重点)
  Nginx官网2、Nginx优势
  nginx优势:高并发、IO多路复用、epoll模型:异步且非阻塞IO多路复用(重点)理论:I是input输入,O是output输出,nginx的IO多路复用,提高了服务器的吞吐能力,同一个线程里面,通过开关的方式,来同时传输多个IO流,比如你去帮同事解决问题,A同事问你错误原因,B同时问你怎么安装的问题,你同时去帮他们解决;技术分类:select、poll、epoll(epoll模块实现IO多路复用)特点:异步、非阻塞特点比喻:同步:比如AB石头剪刀布同时出为同步异步:石头剪刀布不同时出异步阻塞:去上厕所,不上完厕所不去干别的事非阻塞:厕所人多可以先去忙别的
  时分多路复用:时分多路复用(TimeDivisionMultiplexing,TDM)是一种数字或者模拟(较罕见)的多路复用技术,比如CPU的分时计算,你想去听歌或者看电影,CPU需要不断的切换去处理你的个人需求,把时间分成块,只不过处理的比较快,个人感觉不到。频分多路复用:频分多路复用,是在适于某种传输媒质的传输频带内,若干个频谱互不重叠的信号一并传输的方式,比如现在既可以打电话也可以上网,就是用到了此技术。3、Nginx部署
  Nginx官网
  选择download编译安装
  如果需要平滑增加模块使用此安装
  yum安装:nginx:Linuxpackages
  如果不需要指定模块,此安装会自动安装很多模块
  推荐yum安装,去官网找仓库,配置文件不需要改,主线版本不要打开使用稳定版就行如何安装我总结在此博文Nginx部署4、Nginx配置文件
  查看相关配置文件:rpmqlnginx〔rootweb01〕rpmqlnginxetclogrotate。dnginxahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a轮转文件etcnginxnginx。conf总配置文件etcnginxconf。d子配置文件etcnginxconf。ddefault。conf默认网站配置文件etcnginxfastcgiparams动态网站模块文件python,php所需的相关变量etcnginxscgiparamsetcnginxuwsgiparamsetcnginxmime。types文件关联程序:网站文件类型和相关处理程序etcnginxmodulesnginx模块文件usrlibsystemdsystemnginxdebug。servicenginx调试程序启动脚本usrlibsystemdsystemnginx。serviceusrlib64nginxusrlib64nginxmodulesusrlibexecinitscriptslegacyactionsnginxusrlibexecinitscriptslegacyactionsnginxcheckreloadusrlibexecinitscriptslegacyactionsnginxupgradeusrsbinnginx主程序usrsbinnginxdebug调试程序mannginx手册文件如下usrsharedocnginx1。20。2usrsharedocnginx1。20。2COPYRIGHTusrsharemanman8nginx。8。gzusrsharenginxusrsharenginxhtmlusrsharenginxhtml50x。htmlusrsharenginxhtmlindex。htmlvarcachenginx缓存文件varlognginxahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件5、Nginx模块
  yum安装,自带的模块剖析yum安装的模块如下都安装好了,模块是固定的,如果想自定义增加模块使用编译安装才可以〔rootweb01sbin〕nginxVnginxversion:nginx1。20。2builtbygcc4。8。520150623(RedHat4。8。544)(GCC)builtwithOpenSSL1。0。2kfips26Jan2017TLSSNIsupportenabledconfigurearguments:prefixetcnginx指定安装路径sbinpathusrsbinnginx程序文件位置modulespathusrlib64nginxmodules模块路径的位置confpathetcnginxnginx。conf主配置文件的位置errorlogpathvarlognginxerror。log错误ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a位置httplogpathvarlognginxaccess。log访问ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a位置pidpathvarrunnginx。pid程序PIDlockpathvarrunnginx。lock锁路径,防止重复启动nginxhttpclientbodytemppathvarcachenginxclienttemp缓存httpproxytemppathvarcachenginxproxytemp代理缓存httpfastcgitemppathvarcachenginxfastcgitempphp缓存httpuwsgitemppathvarcachenginxuwsgitemppython缓存位置httpscgitemppathvarcachenginxscgitempusernginx用户groupnginx组withcompat启动动态模块兼容withfileaio提高性能withthreads多线程模块withhttpadditionmodule响应之前或者之后追加文本内容withhttpauthrequestmodule认证模块,比如登录密码withhttpdavmodule增加上传PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)默认情况下为关闭withhttpflvmoduleNGINX添加MP4、FLV视频支持模块withhttpgunzipmodule压缩模块withhttpgzipstaticmodule压缩模块withhttpmp4module支持多媒体withhttprandomindexmodule随机主页withhttprealipmodulenginx获取真实ip模块withhttpsecurelinkmodulenginx安全下载模块withhttpslicemodulenginx中文文档withhttpsslmodule网站加密withhttpstubstatusmodule访问状态withhttpsubmodulenginx替换响应内容withhttpv2moduleweb2。0技术邮局withmail邮件withmailsslmodule负载均衡反向代理模块withstreamwithstreamrealipmodulewithstreamsslmodulewithstreamsslprereadmoduleCPU优化参数等withccoptO2gpipeWallWp,DFORTIFYSOURCE2fexceptionsfstackprotectorstrongparamsspbuffersize4grecordgccswitchesm64mtunegenericfPICwithldoptWl,z,relroWl,z,nowpie
  编译安装如何平滑增加模块?我总结在此博文
  nginx平滑增加模块6、Nginx配置文件
  nginx分为全局配置和模块配置
  相关文件:etcnginxnginx。conf(主配置文件)
  配置文件内容1、全局核心块。配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a存放路径,配置文件引入,元许生成workerprocess数等。指定Nginx的启动用户开启nginx的数量,可以自定义,建议和CPu一样多,2核就写2个errorlogvarlognginxerror。错误ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志apidvarrunnginx。进程号存放路径2、events块,配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。events{workerconnections1024;进程最大连接数}3、http模块:可以嵌套多个server,配置代理,缓存,ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a定义等绝大多数功能和第三方模块的配置。如文件引入,mimetype定义,ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。http{includeetcnginxmime。加载外部的配置项,降低了文件的复杂度字节流处理方式logformatmainremoteaddrremoteuser〔timelocal〕ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a格式,可以修改为jsonaccesslogvarlognginxaccess。访问ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志加速访问、高效读取文件优化keepalivetimeout65;长连接,timeout不能太低,不然和短链接一样压缩includeetcnginxconf。d。配置文件}4、server块:配置虚拟主机的相关参数,一个http中可以有多个server5、location块:配置请求的路由,以及各种页面的处理情况nginx配置结构分为三层httpserverlocationhttp包含一到多个server,server包含一到多个location配置项的优先级分别是location,server,httphttp{。。。accesslogvarlogsnginxnginx。server{servernameA;。。。accesslogvarlogsnginxserverAnginx。location{。。。accesslogvarlogsnginxserverAlocaltionnginx。}}}匹配到serverA,localtion时日志会记录到varlogsnginxserverAlocaltionnginx。log匹配到serverA其他location时日志会记录到varlogsnginxserverAnginx。log默认请求日志记录到varlogsnginxnginx。6。1、Location配置优先级
  使用NginxLocation可以控制访问网站的路径,但一个server可以有多个location配置,多个location的优先级该如何区分,就用到了location配置的优先级6。1。1、location匹配符号
  匹配符
  匹配规则
  优先级
  精确匹配
  1hr
  以某个字符串开头
  2hr
  区分大小写的正则匹配
  3hr
  不区分大小写的正则匹配
  3hr
  通用匹配,任何请求都会匹配到
  4hr号优先级最高server{listen80;locationpython{return200L}locationPython{return200L}locationpython{return200L}locationpython{return200L}}6。2、http、server、location三者关系(通俗理解)http:通俗理解为整个服务器,如果在http下添加配置,那么整个服务器的网站都会受影响,不管是网站A,还是网站B,或者网站中的某一个页面server:通俗理解为服务器中的一个网站,在server中配置,那么受影响的只有该网站;location:通俗理解为网站的某一个页面,如果在location下配置,那么受影响的只有该server的该页面;6。3、include:加载外部的配置项
  相关文件etcnginxconf。d。conf重点server:网址模块,每一个server代表一个网站,可以有多个listen:监听的端口servername:定义域名location{}:访问路径root:指定网址路径index:指定网址的索引文件
  Nginx配置文件博文
  Nginx如何yum安装和编译安装以及配置文件剖析和游戏案例我编写在如上博文7、Nginx虚拟主机
  三种方式,示例是自己创的网站,只要以。conf都可以被识别相关文件目录:etcnginxconf。d(子配置文件)默认配置文件etcnginxconf。ddefault。conf〔rootweb01conf。d〕catetcnginxconf。ddefault。confserver{listen80;端口域名accesslogvarlognginxhost。access。ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a和格式location{存放网站目录,这里是默认网站indexindex。htmlindex。默认主页文件名}errorpage50050250350450x。location50x。html{}错误页面}
  自定义页面建议在子配置目录下创建以。conf结尾的文件7。1、自定义网站自定义配置文件〔rootweb01〕vimetcnginxconf。dhammer。confserver{listen80;servernamewww。hammer。location{rootoptHindexindex。}}创建目录optHammer〔rootweb01〕mkdiroptHammer写入内容〔rootweb01chess〕echo欢迎来到HammerZe的博客optHammerindex。html测试配置文件〔rootweb01conf。d〕nginxtnginx:theconfigurationfileetcnginxnginx。confsyntaxisoknginx:configurationfileetcnginxnginx。conftestissuccessful域名解析在windows中hosts文件解析重启服务。〔rootweb01conf。d〕systemctlrestartnginx测试是否能访问去浏览器测试
  补充知识:elinks字符浏览器,格式:elinks〔域名〕7。2、三种方式
  总结在以下博文
  三种方式7。2。1、基于多IP的方式防止其他配置文件影响,将所有配置文件压缩〔rootweb01conf。d〕gzipMario。conf〔rootweb01conf。d〕gzipchess。conf。gz〔rootweb01conf。d〕gzipdefault。conf。gz编辑配置文件〔rootweb01〕cdetcnginxconf。d〔rootweb01conf。d〕vimgame。confserver{listen80;servername192。168。15。7;location{rootoptSuperM需要创建indexindex。}}server{listen80;servername172。16。1。7;location{indexindex。}}测试配置文件〔rootweb01conf。d〕nginxtnginx:theconfigurationfileetcnginxnginx。confsyntaxisoknginx:configurationfileetcnginxnginx。conftestissuccessfu重启服务〔rootweb01conf。d〕systemctlrestartnginx7。2。2、基于多端口的方式编辑配置文件〔rootweb01conf。d〕vimgame1。confserver{listen80;servername192。168。15。7;location{rootoptSuperMindexindex。}}server{listen81;servername192。168。15。7;location{indexindex。}}7。2。3、基于多域名的方式编辑配置文件〔rootweb01conf。d〕vimgame2。confserver{listen80;servernamewww。SuperMario。location{rootoptSuperMindexindex。}}server{listen80;servernamewww。chesss。location{indexindex。}}注意域名不能用chess
  2和3其余步骤和1一样8、Nginx日志8。1、日志配置
  官网文档:Modulengxhttplogmodule(nginx。org)8。1。1、日志模块名称
  ngxhttplogmodule8。1。2、相关指令logformat:日志格式accesslog:正确访问进程日志errorlog:错误日志openlogfilecache:日志缓存8。1。3、日志格式和命令
  相关文件:etcnginxnginx。conf查看nginx的主配置文件〔rootzenginx〕catetcnginxnginx。conflogformatmainremoteaddrremoteuser〔timelocal〕accesslogvarlognginxaccess。这里的main格式和上面的main对应配置详解remoteaddr:远程地址,记录客户端IP地址:分隔符remoteuser:代表登录用户名(没有就用代替)〔timelocal〕:本地时间request:请求方式、类型(post,get)request:包括请求方式,访问文件,连接方式(HTTP1。1长连接)status:状态码(200,404,502)bodybytessent:访问文件大小httpreferer:访问域名,跳转地址(超链接)httpuseragent:客户端标识httpxforwardedfor:真实的客户端IP(在反向代理中生效,代理地址)
  监控日志tailfvarlognginxaccess。logtailfvarlognginxerror。log8。2、个性化404页面
  个性化404页面是用于美化页面,或者优化操作,提升了用户的体验!定义404页面路径〔rootzeze〕vimetcnginxconf。dzeself。confserver{listen80;servernamewww。zemake。location{indexindex。htmlzemake。}errorpage404404。location404。html{}}自定义404界面〔rootzeze〕vimoptze404。htmlimgsrca2020imgdataimg。jpgdatasrcimg01。bs178。combcmt22f9125354ed2f03。jpg上传404个性图片〔rootzeze〕llrwrr1rootroot84134Jan814:52img01。bs178。combcmt22f9125354ed2f03。jpg重启〔rootzeze〕systemctlrestartnginx
  如果是编译安装的nginx还可以修改nginx和版本号,请看我总结在如下博文中
  编译安装nginx自定义404界面
  8。3、日志缓存
  当浏览器大量访问到来时,对于每一条日志记录,都是先打开文件,再写入日志,然后关闭,占用了系统的IO,与业务无关!可以通过openlogfilecache来设置;(一般不用设置)语法:openlogfilecachemax1000inactive20sminuses3valid1m;系统默认:作用范围:http、server、location参数剖析:max1000指的是日志文件的FD,最大的缓存数量为1000;如果缓存数量超了,minusers3是20秒内小于3次访问的FD,就给你清掉,结合inactive20s的时间;valid1m检查周期为1分钟。总结:缓存最多1000个,到了极限。每分钟开始清除掉20秒内小于3次的文件FD(FD:文件关联),节省了系统的IO;设置缓存配置〔rootzeconf。d〕catetcnginxconf。dzeself。confserver{openlogfilecachemax1000inactive20sminuses3valid1m;listen80;servernamewww。zemake。location{indexindex。htmlzemake。}errorpage404404。location404。html{}}〔rootzeconf。d〕nginxtnginx:theconfigurationfileetcnginxnginx。confsyntaxisoknginx:configurationfileetcnginxnginx。conftestissuccessful〔rootzeconf。d〕systemctlrestartnginx8。4、日志轮转切割Nginx安装,会默认启动日志轮转,可以通过rpmqlnginxgreplog过滤出日志轮转文件;
  日志轮转、切割是为了更好的节省空间日志轮转文件:etclogrotate。dnginx日志目录:varlognginx〔rootzenginx〕catetclogrotate。dnginxvarlognginx。log{针对。log结尾的ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a文件daily轮转周期,以天为单位missingok文件丢失不提示rotate52保留52天compressahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a轮转后压缩,节省资源delaycompress暂缓压缩notifempty空文件不轮转create640nginxadmahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a切割之后创建新文件nginx为数主,adm为数组,权限640下面是切割完重启sharedscriptspostrotateif〔fvarrunnginx。pid〕;thenkillUSR1catvarrunnginx。pidfiendscript}8。5、日志分析
  知道日志格式是什么,日志的字段〔8。1〕,统计用户访问情况,页面流量,统计PV,UV等分析的字段remoteaddr:远程地址,记录客户端IP地址remoteuser:代表登录用户名(没有就用代替)〔timelocal〕:本地时间request:请求方式、类型(post,get)request:包括请求方式,访问文件,连接方式(HTTP1。1长连接)status:状态码(200,404,502)bodybytessent:访问文件大小httpreferer:访问域名,跳转地址(超链接)httpuseragent:客户端标识httpxforwardedfor:真实的客户端IP(在反向代理中生效,代理地址)8。5。1、PV、UV、IP8。5。1。1、简介PV(PageView)访问量,即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。访问量指PV指网站页面的浏览量,页面被刷新一次就计算一次。如果网站被刷新了1000次,那么流量统计工具显示的PV就是1000UV(UniqueVisitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:0024:00内相同的客户端多次访问只计为1个访客。IP(InternetProtocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。8。5。1。2、三者关系
  PV是和IP的数量是成正比的,因为页面被刷新一次那么PV就会被记录一次,所以IP越多,说明网站的PV数据也就随之增多。但是需要注意的是PV并不是访问网站的用户数量,而是网站被访问的页面数量。因为一个访问者可以多次刷新页面,增加PV数量。
  关系
  描述
  PVUV
  页面访问数,一定会大于独立用户访问数
  UVIP
  10个用户在同一个局域网使用同一个IP访问相同网页,此UV10,IP1。
  IPUV
  1个用户网络频繁掉线,重复了10次联网登录网页,此时UV1,IP10。
  参考博文:PV、UV、IP8。5。2、分析案例1、统计一天内访问最多的10个ip日期:日月年:时:分:秒01Sep2022grep日期〔ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a路径〕awk{arry〔1〕}END{for(iinips){printi,arry〔i〕}}sortk2rn2、统计每个URL访问内容总大小(bodybytessent)grep日期〔ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a路径〕awk{urls〔7〕;size〔7〕10}END{for(iinurls){print次数urls〔i〕,体积size〔i〕,内容i}}sortklrnhead103、统计IP访问状态码为404和出现的次数(status)grep日期〔ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a路径〕awk{if(9404){ipcode〔19〕}}END{for(iinipcode){printi,ipcode〔i〕l}}4、统计前一分钟的PV量date(dated1minuteY:9H:M);awkvawkdatedate0date{it}END{printi}varlognginxaccess。log9、NginxWeb模块
  模块信息都可以在官网查看,示例等;
  Nginx官网文档9。1、连接状态模块模块名称:ngxhttpstubstatusmodulewithhttpstubstatusmodule语法:作用范围:server,location
  如果是编译安装的nginx是没有此模块的,需要。configurehelp查看要安装的模块名格式示例locationbasicstatus{}配置文件server{ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a缓存openlogfilecachemax1000inactive20sminuses3valid1m;listen80;servernamewww。zemake。location{indexindex。htmlzemake。网页根页面}locationstatus{}errorpage404404。location404。html{}}
  Activeconnections:当前活动的连接数(用户数)serveracceptshandledrequests:服务器接受处理请求2:总连接数2:成功连接数10:总共处理的请求数Reading:0:读取客户端Header的信息数,请求头Writing:1:返回给客户端的Header的信息署,响应头Waiting:1:等待的请求书,开启了keepalive(长连接)9。1。1、keepalive长连接补充知识:
  长连接的存在解决了客户端和服务端每次通信需要TCP三次握手和四次断开浪费资源的情况,在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。
  如果一直长连接是不是也在浪费资源呢?那么就可以使用Httpd守护进程,来通过keepalivetimeout设置时间参数,Nginx中提供的是keepalivetimeout参数,如果通信建立长连接,当HTTP产生的TCP连接传输完最后一个响应,还需要再等待一段时间,就是keepalivetimeout设置的,如果超过这段时间,浏览器没有接收到HTTP的请求,那么才会关闭这个连接,双方才会回收资源;如果在规定的时间内接收到HTTP请求,会一直保持这个连接!
  注意:长连接设置的时间不能太短,不然和短连接没啥区别!9。2、随机主页模块
  微更新,将主页设置成随机页面,是一种微更新机制模块名称:ngxhttprandomindexmodulewithhttprandomindexmodule语法:系统默认:关闭状态()作用范围:location格式示例location{}示例1、创建主页目录mkdirapp2、创建多个主页,在多个文件中写入不同内容touchapp{blue。html,green。html,red。html,。yellow。html}〔rootzeapp〕catred。htmlhtmlheadtitleredcolortitleheadbodystytlebackgroundcolor:redh1redcolorh1bodyhtml3、配置文件location{indexindex。htmlindex。}9。3、替换模块
  网页内容替换,如果我们用模板生成网站的时候,因为疏漏或者别的原因造成代码不如意,但是此时因为文件数量巨大,不方便全部重新生成,那么这个时候我们就可以用此模块来暂时实现纠错。另一方面,我们也可以利用这个实现服务器端文字过滤的效果。模块名称:ngxhttpsubmodulewithhttpsubmodule使用此模块是临时修改,只是为了在网页出错的时候给用户呈现正确的结果语法:作用范围:http,server,location启动替换1:启动替换2:官网示例location{subfilterpreprecode启动替换1示例〔rootzeconf。d〕vimetcnginxconf。ddefault。confserver{替换一次全部替换}将默认的nginx的主页中,nginx修改为blogs
  替换一次:
  全部替换:
  9。4、文件读取模块
  Nginx官网文件读取模块模块名:ngxhttpcoremodulesendfile模块:加速服务器的拷贝时间,优化服务器的,默认是开启的;语法:tcpnopush模块:提升了网络传输效率,默认是关闭的,当要发送的数据包积累到一定大小才发送;语法:tcpnodelay模块:开启或关闭nginx使用TCPNODELAY选项的功能。这个选项仅在将连接转变为长连接的时候才被启用。
  TCPNODELAY是禁用Nagle算法,即数据包立即发送出去。由于Nagle和DelayedACK的原因,数据包的确认信息需要积攒到两个时才发送,长连接情况下,奇数包会造成延时40ms,所以tcpnodelay会将ack(确认包)立刻发出去。如果不在长连接时,可以关闭此模块,因为ack会被立刻发出去。语法:(默认是开启的)9。5、文件压缩模块
  启动该模块,使文件传输前进行压缩,提升传输效率;模块名称:ngxhttpgzipmoduleDirectives启用或禁用Syntax:Default:Context:http,server,location,ifinlocation压缩级别,级别越高压缩时间越长,体积压的也小Syntax:Default:gzipcomplevel1;(19)Context:http,server,locationgzipversionSyntax:gziphttpversion1。01。1;Default:gziphttpversion1。1;Context:http,,server,locationgziptypeSyntax:gziptypesmimetype。。。;Default:Context:http,server,location静态压缩Syntax:Default:Context:http,server,location静态压缩官网示例9。6、页面缓存模块
  expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求要配置expires,可以在http段中或者server段中或者location段中加入。Nginx(expires缓存减轻服务端压力);模块名:ngxhttpheadersmodule语法:expires〔modified〕Syntax:expires〔modified〕缓存时间Default:默认关闭Context:http,server,location,ifinlocation并不是所有的网页都适合开启缓存,比如12306,前一秒看票还有,后一秒就无了vimetcnginxconf。ddefault。conflocation{expires24h;缓存24h}
  9。7、防盗链模块该模块用于阻止对引用者标头字段中具有无效值的请求访问站点。应该记住,使用适当的Referer字段值制造请求非常容易,因此此模块的预期目的不是彻底阻止此类请求,而是阻止常规浏览器发送的大量请求流。还应该考虑到,即使对于有效的请求,常规浏览器也可能不会发送引用者字段。
  比如,我不想让你盗用我服务器的图片,那么就可以通过添加防盗链来限制你使用URL来盗用我的图片;当然也可以通过servername添加白名单来允许一部分网站来使用;模块名:ngxhttpreferermodule语法Syntax:validreferersnoneblockedservernamesstring。。。;Default:Context:server,location官网示例validreferersnoneblockedservernames。example。comexample。www。example。orggalleries。google。;if(invalidreferer){return403;}
  9。7。1、日志格式字段字段名:httpreferer
  日志格式中的httpreferer是记录,访问点引用的URL。也就是超链接的上一级地址。通过这段地址,可以发现一种网络行为盗链。非法盗链会影响站点的正常访问。通过httpreferer模块可以控制这一点。防止非法盗链现象。9。8、访问限制模块9。8。1、ngxhttplimitreqmodule模块
  用于限制每个已定义键的请求处理速率,特别是来自单个IP地址的请求的处理速率,使用leakybucket方法完成限制;模块名:ngxhttplimitreqmodule语法Syntax:limitreqzonename〔burstnumber〕〔nodelaydelaynumber〕;Default:Context:http,server,location
  官网示例ExampleConfigurationhttp{limitreqzonebinaryremoteaddrzoneone:10mrate1。。。server{。。。locationsearch{limitreqzoneoneburst5;}定义剖析limitreqzonebinaryremoteaddrzoneone:10mrate1剖析limitreqzone:限制请求binaryremoteaddr:二进制地址zoneone:10m:限制策略的名称:占用10M空间rate1rs:允许每秒1次请求引用剖析limitreqzoneoneburst5;剖析limitreqzoneone:引用限制策略的名称oneburst5表示最大延迟请求数量不大于5。如果太过多的请求被限制延迟是不需要的,这时需要使用nodelay参数,服务器会立刻返回503状态码。
  个人示例1、控制Nginx连接数1、安装ab测试命令yuminstallhttpdtoolsy2、ab参数n:总共需要访问多少次c:每次访问多少个〔rootweb01conf。d〕vimgame5。conflimitreqzoneremoteaddrzoneone:10mrate1limitconnzoneremoteaddrzoneaddr:10m;server{listen80;servername192。168。15。7;limitreqzoneoneburst5;limitconnaddr1;location{rootoptSuperMindexindex。}}9。8。2、ngxhttplimitconnmodule模块模块名:ngxhttplimitconnmodule
  ngxhttplimitconnmodule模块用于限制链接(TCP),特别是来自单个IP地址的连接数。不是所有的连接都被计算在内。只有当服务器正在处理一个请求,并且整个请求头已经被读取时,连接才会被计数。语法Syntax:Default:Context:http,server,location官网示例http{limitconnzonebinaryremoteaddrzoneaddr:10m;。。。server{。。。locationdownload{limitconnaddr1;}个人示例〔rootweb01conf。d〕vimgame5。conflimitreqzoneremoteaddrzoneone:10mrate1limitconnzoneremoteaddrzoneaddr:10m;server{listen80;servername192。168。15。7;limitreqzoneoneburst5;limitconnaddr1;location{rootoptSuperMindexindex。}}9。9、访问控制模块9。9。1、控制ip访问模块名:ngxhttpaccessmodule
  基于ip操作Syntax:allowaddressCIDRunix:Default:Context:http,server,location,limitexceptSyntax:denyaddressCIDRunix:Default:Context:http,server,location,limitexceptallow:允许deny:拒绝通过deny和allow,拒绝或者允许某些ip访问官网示例location{deny192。168。1。1;拒绝allow192。168。1。024;允许allow10。1。1。016;allow2001:0db8::32;拒绝所有}示例1:允许192。168。15。1访问,不允许其他IP访问server{listen80;servernamewww。SuperMario。allow192。168。15。1;location{rootoptSuperMindexindex。}}示例2:允许192。168。15。0这个网段访问,不允许其他网段访问allow192。168。15。024;示例3:只允许通过VPN来访问allow172。16。1。81;9。9。2、控制用户访问
  通过设置用户名密码来限制访问模块名:ngxhttpauthbasicmodule启用语法Syntax:Default:Context:http,server,location,limitexcept指定密码文件Syntax:Default:Context:http,server,location,limitexcept官网示例location{}示例:访问之前需要登录安装httpdtools〔rootweb01conf。d〕yuminstallhttpdtoolsy生成用户名密码文件〔rootweb01conf。d〕htpasswdcetcnginxauthhammerNewpassword:Retypenewpassword:Addingpasswordforuserhammer查看〔rootweb01conf。d〕catetcnginxauthhammer:apr1fOHr21VfzpIMVxQ452KzP0p10QI10将密码文件路径加入配置server{listen80;servernamewww。SuperMario。location{rootoptSuperMindexindex。}}〔rootweb01conf。d〕nginxtnginx:theconfigurationfileetcnginxnginx。confsyntaxisoknginx:configurationfileetcnginxnginx。conftestissuccessful〔rootweb01conf。d〕systemctlrestartnginx
  9。10、目录索引模块
  作用是实现网页结构目录索引模块名:ngxhttpautoindexmodule语法Syntax:Default:Context:http,server,location官网示例location{}
  原文地址:https:www。cnblogs。com48xzp15781821。html
投诉 评论

有效管理的原则五正面思考真正重要的是正面思考或建设性的思想。第六项原则很容易被人误解,尽管如此,我们也不能在倒洗澡水的同时把孩子也扔掉。如果理解正确,这一原则及其行为将非常有价值,而相反地,负面……Nginx基础入门1、Nginx简介百度解释:Nginx是一款轻量级的Web服务器反向代理服务器及电子邮件(IMAPPOP3)代理服务器,在BSDlike协议下发行。其特点是占有内存少,并发能力……三个时辰夜醒怎么调人一生大约有13的时间在睡觉中度过。但不少人会出现半夜醒来睡不着觉的情况,造成睡眠时间不足或睡眠质量下降,长年累月,对人体的伤害不容忽视,如精神状态变差、抵抗力下降、内分泌紊乱……NBA奥克利字母哥在我的年代只能打替补?公鹿队主将的字母哥阿提托康波在退役球员奥克利看来,似乎难以生存在对抗激烈的年代。根据奥克利本月在播客节目《NoPumpFakes》的评论,他认为阿提托康波如果处在1980、19……鸽子肉的营养价值及功效冬季吃鸽子肉好处多多鸽子肉的营养价值及功效中国人对于吃很有研究,天上飞的、地上跑的、水里游的,可以说在中国厨师的手中,转变成了独具风味的食物。食在中国,让你领会不一样的饮食文化,接下来说说空……万元投资开粮油店如何盈利油是我们生活中的必备品,如今,市面上粮油店众多,想要开粮油店赚钱,就必须要掌握一定的方法技巧才行。那么,粮油店经营技巧有哪些呢?粮油店经营技巧:1、学会观察:仔细的……有不用网线不用电源的家用监控摄像头吗信不信由你,还真有不用网线不用电源的家用监控摄像头。速名网络科技研究了一下监控摄像行业市场,发现有好多种监控摄像头是可以实现无需布线无需电源,但是却可以长时间待机监控的。……我家的小狗我家有一只小狗,它叫做毛毛。毛毛有着一身黄色的皮毛,仿佛披上了一件大黄衣一样,摸起来软软的,非常舒服。它有一双圆溜溜的眼睛,经常会呆萌萌地望着我,好像我的脸上有什么东西一……如何治疗红皮肤在本文中:治疗干燥、红肿的皮肤治疗酒渣鼻治疗牛皮癣治疗湿疹治疗晒伤7参考皮肤是身体最大的器官。皮肤能保护我们不受病原体感染并防止水分流失,皮肤能受许多因素影响,包括我们吃……普通女生用蜂蜜洗脸一个月,素颜都敢出门了家里有很多亲戚送的蜂蜜,吃都吃不完。于是我想了一个办法,用蜂蜜来洗脸,坚持用了几个月,现在皮肤好的朋友见了就夸我变漂亮了。用的时间长了给大家总结出来一套流程,跟着做……可爱的小白兔我喜欢的动物有很多,但我心目中最喜欢的动物是小兔子。为什么最喜欢的小动物是它,因为小兔子有一双毛茸茸的耳朵,一身雪白的绒毛,外及一双红红的眼睛,看起来就令人十分喜爱。……油漆涂料在户外广告宣传的实用性摘要:户外广告宣传油漆涂料以它耐磨、耐水、耐晒、并使用少量的色彩调制出几百种绚丽色彩的特点,从古到今被人们所喜爱利用。在广告使用中也是有很多的选择和挑选的,油漆的手绘和喷绘效果……
金价展开反弹,你又空在地板了吗植物大战僵尸花园战争2玫瑰使用心得感受光遇听我说谢谢你,老玩家内涵复刻?玩家的两种态度6悍将相继加入翼龙,锁定周琦引CBA不满,辽篮发声堵死郭艾伦新一代移动视频对讲三防手持机BL502可扩展支持RTK北斗高场上成绩斐然场下劣迹斑斑!为你还原最真实的火箭奥沙利文惊喜!葛曼棋超风速10秒94夺得百米冠军,中国女飞人闪耀世界针灸治疗反复不好,甚至治后更重?内经告诉你,针刺有浅深入秋了,分享这6种简单的家常美食,好吃好做营养下饭,真香呀辽宁男篮最新消息!内线大调整,李晓旭成为教练,寻找韩德君替身著名歌手甘萍嫁足球运动员黎兵,结婚18年生一女三伏天易缺钾,建议中老年人多吃5种高钾菜,精神足腿脚有劲学期新教学计划乔迁之喜红包贺词格式及范文高速公路又迎来新变化?9月份,新收费标准将开始实施国内创业者们忘掉你的平台梦吧十年十倍!中国墨子号再创新纪录中国香港足球队公布集训名单eBay推出“VerifiedCondition”认证计划为环创分享神舟十二号载人飞船发射圆满成功致敬中国航天人讨厌的周末20131019对本周大盘的理解如何使用除草地膜为何宝宝都这么难带?大多因为妈妈怀孕时,做错了几件事

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找