您的位置:首页 > 运维架构 > Nginx

nginx的几个使用问题

2019-06-01 11:58 288 查看

nginx是很好的web服务器,也是反向代理服务器,它功能强大,使用方便,可以实现动静分离,负载均衡,但我们在使用nginx的时候,有几个问题需要注意:
1、如果想使用error_log的debug级别,例如:error_log /var/log/error.log debug,需要在安装nginx的时候,就指定参数./configure --with-debug
2、如果要使用proxy_cache,需要集成第三方的ngx_cache_purge模块,需要在安装nginx的时候,指定参数./configure --add-module=…/ngx_cache_purge-1.0
使用实例:

http{
proxy_temp_path   /cache/proxy_temp_path;
proxy_cache_path /cache/proxy_cache_path levels=1:2 keys_zone=mycache:10m inactive=1d max_size=100m;
server{
proxy_cache mycache; #设置缓存名称
#对不同的http请求状态设置不同的缓存策略
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 5m;
proxy_caceh_valid any 2m;
#设置缓存的key值
proxy_cache_key $host$uri$is_args$args;
}
}
**proxy_temp_path和proxy_cache_path路径必须在同一个分区**,以上设置的缓存名称为mycache,缓存初始大小10m,自动清除1天未使用的数据,最大缓存100m。

3、为了提高nginx的处理能力,可以使用geo模块实现负载全局均衡,即在多个server上安装nginx,然后在其中一个主server上配置geo模块,实现按照客户端ip进行分发,访问不同的server,geo模块还可以做限速白名单
4、nginx的优化,应该是根据业务需要,我们业务需要哪个模块就安装哪个模块,不要安装多余的模块,这个在安装nginx的时候就要确定下来。

  • worker_processes的数量尽量配置成cpu的总核数或者2倍;
  • worker_rlimit_nofile配置成和系统文件打开数一致就可以;系统的文件打开数可以使用ulimit -n命令查看。
  • worker_connections默认是1024,可以适当设置大一些,但这个值和物理内存大小有关,理论上并发总数是worker_processes和worker_connections的乘积,一般情况下,1G内存可以打开的文件数是10万左右,可以参考这个值进行设置。
  • 尽量开启gzip压缩,gzip_comp_level通常设置3-5。
  • 适当提高error_log的级别,access_log可以考虑关闭,减少磁盘I/O。
  • worker_priority进程优先级设置,取值范围-20到19,-20级别最高,可以设置小一点,但最好高于-5。
  • 合理设置静态资源的缓存时间,尽量使用浏览器缓存。
  • 如果使用ssl,且服务器有ssl硬件加速设备,一定要开启硬件加速。
  • buffer size尽量设置的大一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: