今天给你们讲下nginx的基础配置,不少小伙伴在开发的过程当中会使用到 nginx ,可是确对 nginx 的配置其实并不了解,今天我给你们讲下基础的配置项.nginx 的功能不少,可是说到 nginx 你们最早想到的是反向代理和负载均衡.
"负载均衡"在开发环境体现的不太明显,主要是为了解决生产环境的客户端请求不少的时候,动态的去分散给各个服务器,缓解服务器压力,充 分利用资源.而说到 "反向代理",你的第一反应应该是"正向代理",简称"代理",你能够把代理想象成客户端和服务端的中介,代理的种类不少,比较常见的是,客户端对服务端进行请求的时候,代理会对请求的内容进行下载缓存,从而提升客户端的请求速度,代理还有多重代理,加密处理等功能,"反向代理"的做用和正项代理的功能相辅相成,原理也相似,反向代理将字符串和相应的服务器和端口匹配上,从而获取用户想要获取的内容,那么这二者的区分是什么呢,"正向代理"做用于客户端,"反向代理"做用于服务器.前端
为了让你们可以更加深入的理解代理和反向代理的模式,咱们引用下知乎上车小胖的回答nginx
有了第三方订餐外卖平台(代理),老王懒得动身前往饭店,老王打个电话或用APP,先选好某个饭店,再点好菜,外卖小哥会送上门来。因为某个品牌的饭店口碑特别好,食客络绎不绝涌入,第三方订餐电话也不绝于耳,可是限于饭店接待能力有限,没法提供及时服务,不少食客等得不耐烦了,纷纷铩羽而归,饭店老总看着煮熟的鸭子飞走了,心疼不已。痛定思痛,老总又成立了几个连锁饭店,造成一个集群,对外提供统一标准的菜品服务,电话订餐电话400-xxx-7777,当食客涌入饭店总台,总台将食客用大巴运到各个连锁店,这样食客既不须要排队,各连锁店都能高速运转起来,一箭双雕,老总乐开了花,并为此种运做模式起名为“反向代理”(Reverse Proxy)。
好了,了解了 nginx 的一些概念以后,咱们要开始切入今天的主题,"ngix 的基础配置",安装好 nginx 配置以后,你对 nginx 的配置都写在 nginx.conf 的文件里,从 nginx 的配置指令做用域来说,咱们分为 5 个做用域块,分别是:web
在 "全局做用域块" 做用域块中配置通用的nginx 配置,好比 nginx 的用户组信息,nginx 的并发进程数,日志存放位置等,nginx 的用户组信息配置,用来控制启动 nginx 的权限,服务并发通常状况下是越多越好,可是当超过硬件的承受范围时会拔苗助长,因此通常咱们会配置为 auto,这样 nginx 会去检查硬件的信息,启用适当的进程数量.缓存
日志存放位置你也能够配置在 http 做用域块,"http 做用域块"做用域一般是配置请求相关的内容,好比数据的传输,对同一个接口的请求次数上线,配置请求的潮湿时间,还有是否要对请求进行 gzip 压缩等.在以前讲 web性能优化的时候,我记得和你们讲过 gzip 压缩是提升 web 性能优化的一种手段,gzip 能对 http 请求的请求头和请求体进行压缩,从而达到优化.可是不是全部的请求都要去压缩,有些压缩以后的请求体积可能会更大,从而达不到压缩的效果.那怎么办呢,在 nginx 的配置中,你能够进行配置,设置当请求大于必定值的时候,才触发 gzip 压缩 gzip 的内容这里就深刻讲解了,想要了解的同窗能够去谷歌下,或则在下次 nginx 的高级配置的分享的时候咱们再来细讲.性能优化
在 event 模块咱们一般会配置进程的链接数量,就是每个worker进程能并发处理(发起)的最大链接数.在 "server 指令做用域块" 咱们能够进行独立项目的代理配置,服务器
一个 http 指令中能够包含多个 server ,每个 server 你能够看作是一个虚拟机,部署过网站的同窗应该知道,若果你没有作代理,你的服务器只能部署一个项目的内容,默认是80端口,使用代理,能将客户端的请求根据端口做为区分,发散到不一样的项目中.nginx 这一点,能让咱们更好的利用服务器资源并发
在server 指令中,咱们一样能够配置多个 location 指令,location 指令能将咱们的字符串请求解析到对应的IP和端口,从而去获取正确的资源,location 也能够进行特殊配置,定制 网站的 404 ,500 等页面.负载均衡
咱们简单的看下,我目前使用到的两个项目的 nginx 配置,在fengdai_pc 项目中咱们经过 listen 来配置项目监听端口,经过 root 来配置前端项目文件的地址,咱们还经过 location 来配置了几个模块代理,account 和 funds ,定制了 404 页面,在 另外一个 nginx 配置项目中咱们作了https 配置,配置了域名 baibatianpc.com
,而且指定了证书的位置,这样配置后,咱们能经过 访问 https://baibatianpc.com/ 来查看咱们的项目.这里对于如何搭建 https 环境就不细讲了,不一样的开发系统证书的获取和配置方式也不太同样,想要深刻了解的同窗继续谷歌.性能
好了,咱们今天讲了nginx 的基础配置,咱们如今来复习一下,咱们今天讲的知识点有哪些优化
你都掌握了吗