您好!欢迎访问福玩代码!
广告位

Nginx配置优化指南 性能安全两手抓

栏目: 日期: 浏览:90

Nginx身为当下最为流行的Web服务器以及反向代理工具,几乎已然成为站长与技术人员的标配,好多人于部署网站之际,常常仅仅关注功能的达成,却忽略了配置层面的优化以及安全加固,实际上,一份合乎情理的Nginx配置,能够让网站的响应速度提高30%以上,与此同时还能大幅度降低被攻击的风险,这片文章可不讲那些虚无的内容,直接呈上干货,从性能以及安全这两个维度帮你将Nginx配置充实完善。

性能优化做到位 并发处理不卡顿

性能优化的关键在于,使Nginx于有限的服务器资源状况下,去处理数量尽可能多的并发请求,首先需要进行调整的是worker进程数,好多新手直接照搬默认配置,将worker_processes固定写成1,在高并发情形下肯定承受不住,正确的做法是设置成auto,让Nginx自行匹配CPU核心数,要是你的服务器是四核,Nginx会自动开启四个worker进程,每个进程独立处理请求,效率实现翻倍。

着手调整worker_connections,此参数对单个worker进程可同一时刻打开的最大连接数予以决定。默认值一般为1024,针对流量稍大些的网站已然完全不足。倡导依据服务器内存大小来设定,通常设成4096或者8192较为妥当。伴随multi_accept on开启以后,worker进程能够一次性接纳所有新连接,而非逐个去处理,可明显削减等待时间。

请记住,要去开启sendfile以及tcp_nopush。sendfile能够让Nginx直接从硬盘那儿读取文件,进而发送给客户端,如此一来,就省去了数据于用户空间和内核空间之间的复制。而tcp_nopush乃是在sendfile开启之际,将数据包积攒到一定大小之后才去发送,以此减少网络小包的数量,这对于大文件传输而言是特别友好的。对于静态资源密集型的网站来说,这两个配置基本上是必须要开启的。

另外存在一个容易被忽视的优化之处是开启gzip压缩,现代的浏览器均支持gzip,开启以后Nginx会在返回HTML、CSS、JS等文本文件之际进行自动压缩,体积可有减少60%到80%,配置的时候要留意压缩级别不要设置得太高,通常5到6便足够,级别太高反而会耗费更多CPU,得不尝试,另外图片以及视频这类早已压制过结果文件就不要再实施操作了,添加gzip_types白名单就行。

安全配置要到位 防攻击防泄露

要处理的第一个事项是,将Nginx版本号隐藏起来。在默认情形下,Nginx会于响应头当中带有版本信息,就像Server: nginx/1.24.0这样。一旦攻击者看到版本号,便能够针对已知的漏洞展开行动。借助server_tokens off;把版本号移除,仅仅显示nginx,不给黑客留下线索。性能已然搞定,安全这方面是一定不能有所松懈的。

接续而来的是对请求速率以及连接数予以限制。众多站长在遭遇CC攻击之际会感到毫无办法,实际上Nginx自身所带的limit_req和limit_conn模块是能够抵御住大部分流量攻击的。假定你的登录接口,正常用户在一分钟之内最多能够访问10次,将limit_req_zone和limit_req配置妥当,超出限制的便直接返回503,攻击流量即刻就会被阻挡在外部。此项功能并不需要额外安装模块,是原生就予以支持的,只是有许多人不清楚该怎么去运用。

再者,存在一个极易被忽略的安全要点,那便是不得直接进行对敏感目录的访问。比如说,在你的网站根目录之下恐怕会存在.git文件夹、.env文件或者备份文件,而这些只要一旦被扫描到,便会直接致使源代码以及数据库配置被暴露出来。要在server块当中添加location规则,对于那些以点号开头的文件以及目录一概返回403,从而使得爬虫以及扫描器无功而返。

在最后阶段,对自身的SSL配置展开再次核查。要是网站开启了HTTPS,那么一定要将不安全的TLS版本予以关闭,仅仅留存TLSv1.2以及TLSv1.3。与此同时,把不安全的加密套件进行禁用,尤其是那些对可支持RC4、CBC模式的旧套件。当配置完成之后,能够借助SSLLabs的在线检测工具进行一次扫描,只有获取到A+评级才被认定为符合要求。需要留意定期对OpenSSL版本进行更新,因为底层漏洞会直接对Nginx的安全性产生影响。

将上头那些配置一项一项切实落实妥当,你的Nginx方可在性能以及安全方面都稳稳站住脚。别存有一次配置便能终身受用的念头,定期对访问日志与错误日志展开检察,依据实际流量动态性调整参数,这才是运维的长久之策。http://www.fouwan.com