nginx的酷配置

nginx其实从初学到现在已经有1个年头了,不管从官网学习到还是书籍,记得住的时间永远只有那么一点。最近工作需要用到,重回去看一些书籍资料整理出来,方便以后复习和志同道合的朋友学习观摩,有不正确的地方欢迎指出来改正。
ngixn的配置文件中内容比较多,一般学习过的都能大体看得懂一些,今天说一些比较厉害的点:

配置用户和组、工作连接数

nginx.conf中有几个顶级作用域,event就是其中一个,这个平时使用不多,里面主要包含使用模型use expoll、worker-connections限制访问连接数
配置nginx的用户和组,是在顶级作用域下user指令+用户+组,如user www www

访问日志

日志主要用两个指令log_format和access_log,前者设置日志文件的格式,后者设置将日志存放在哪,采用哪种格式和是否使用缓存等。这两个指令可以在server或者http作用域上使用。
format指令如下 format name xxx ,每个format都要指定其名字,将在access_log中引用到。默认nginx给我们配置了一个名字为combined的格式。当我们nginx只作为负载均衡器后普通的web服务器时, remoteaddrip http_x_forwarded_for变量获取到客户端的真正ip,原因是在代理的时候,代理服务器设置到了http头部去了。
access_log指令如下 access_log path format_name buffer=512k,access_log先要配置存放的路径,再指定格式化名称和设置缓存时间。缓存越长性能越好,但是日志实时性就越差。有些设置path会使用变量,如$server_name,用于将日志创建在不同的域名文件夹下分开记录,但是在path上使用变量有很多限制,如用户非root无法创建文件夹,无法使用缓存等,所以尽量在有限域名下自己来配置路径path
nginx 的日志文件随着时间会越来越大,就涉及到了日志切割的问题了。日志切割这个活不在nginx上做,而是自己写脚本,配合linux的指令mv和kill -USR1 pid来自定义脚本,使用crontab定期执行。

资源过期

在location作用域中经常看多expires指令,仔细看expires存在的地方一般都在js,css,img等静态资源上,因为这些资源很少被改动,所以每次请求都重新获取很是浪费网络io和降低性能,所以可以设置expires图片在一个月,css,js在一个小时。原理是通过response的Expires和Cache-Control头部返回。

虚拟主机

虚拟主机可以将一台服务器给不同的服务提供,互不影响。使得一台服务器,一组(master和workers)nginx进程可以服务多个站点。
在ngixn中的表现就是一个server。
虚拟主机有多种方式,主要分为基于ip,基于域名和基于端口。
基于ip以来的技术是多网卡或者ip别名技术,将访问的不同ip配置到不同的server中去。这种方法其实不是很好,建议使用基于域名,好记忆一点,而且在一个ip下,就可以设置虚拟主机,因为一个ip可以绑定多个域名。基于端口就太常见了,这里不多说。

返回信息压缩gzip

response中,返回的信息使用gzip压缩,可以使文件大小降低到30%甚至更多,大大提高效率和节省网络带宽。在http作用中使用gzip指令gizp on开启压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值