zrong 发表于 2018-11-9 13:41:39

nginx基础优化

  1.nginx配置文件优化
  将主配置文件中的虚拟主机相关配置分开,单独用一个配置文件表示,这样主配置文件更简洁,根据实际需要,只修改对应的配置文件即可,
  如果后续虚拟主机配置较多时,也便于维护管理。
  我们知道在apacheconf目录下有extra目录,相关虚拟主机配置文件都在该目录中。
  这里也借鉴apache的做法
  在conf中创建extra目录
  删除配置文件中server设置,改为包含文件的方式(在主配置文件中修改)
  http {
  xxxxxxxx -------->原始配置-----删除server和location配置
  include extra/http_vhosts.conf-----------------------》添加,根据实际业务需求可以添加多个
  

}  

  修改后的nginx.conf配置文件如下
  worker_processes1;
  error_log/application/logs/error.log crit;
  events {
  use epoll;
  worker_connections1024;
  }
  http {
  include       mime.types;
  default_typeapplication/octet-stream;
  log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  sendfile      on;
  keepalive_timeout65;
  

include extra/http_vhosts.conf;  

  }
  将server配置放到http_vhosts.conf中
  # cat extra/http_vhosts.conf
  

server {  listen       80;
  server_namewww.tiantian.org;
  location / {
  root   html;
  indexindex.html index.htm;
  }
  error_page   500 502 503 504/50x.html;
  location = /50x.html {
  root   html;
  }
  
}
  

  后续更改配置文件时可以直接修改http_vhosts.conf文件,也可以对每个server创建一个对应的included
  文件。前面提到配置文件的优化,主配置文件更简洁,便于维护。
  2.nginx模块优化-------》性能方面的优化
  

      2.1.Nginx expires模块优化  

  expires缓存对象(静态文件),如html,图片,css,js,xml。用户访问静态文件,第一次需要从服务端下载,只要不清空浏览器缓存且文件没有过期,
  后续访问就不需要重新下载。节省服务器带宽同时减小了服务器压力,如果静态内容更新,可以在服务端更名发布,这样
  对客户端来说就是新的文件,需要重新从服务端获取。-------------------》与apache的expires优化原理思想是一样的
  这里通过localtion的功能,将需要缓存的扩展名列出来,然后指定缓存时间
  

          1.根据文件扩展名进行判断,添加expires功能  

  范例1:
  location ~.*.(gif|jpg|png|bmp|swf)$
  {
  expires3650d;
  root html/www;
  }
  范例2:
  location ~.*.(js|css)?$
  {
  expires 30d;
  root html/www;
  }
  可以使用curl命令查看缓存功能,或者使用火狐浏览器插件YSlow和firebug
  注意:location内容一般要放到虚拟主机配置中,即server标签中。
  2.根据目录进行判断,添加expires功能
  不希望被缓存的内容;
  1.广告图片
  2.网站流量统计文件
  2.2Nginx gzip压缩模块优化
  经过gzip压缩,可以降低带宽,提升访问速度
  此功能同apache的deflate模块,依赖ngx_gzip_module模块,默认已安装
  压缩配置
  gzip on;
  gzip_min_length 1k;-----允许压缩的最小字节数
  gzip_buffers 4 16k;   -------压缩缓冲区大小
  gzip_http_version 1.0;   -------压缩版本,识别http协议版本,默认是1.1
  gzip_comp_level;2---压缩比率----1压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理慢,也比较消耗cpu资源
  gzip_types   text/plain application/x-javascripttext/css application/xml;
  压缩类型text/html 类型总是会被压缩
  gzip_vary on;------
  可以将压缩参数放到servre标签中。
  # catextra/http_vhosts.conf
  

server {  listen       80;
  server_namewww.tuwei.org tuwei.org;
  location / {
  root   html/www;
  indexindex.html index.htm;
  }
  

  gzip on;
  gzip_min_length 1k;
  gzip_buffers 4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types   text/plain application/x-javascripttext/css application/xml;
  gzip_vary on;
  压缩对象:
  1.大于1k的纯文本文件,图片视频一般不压缩
  

    2.3 nginx错误页面优雅显示  

  如果首页文件不存在,则报403 Forbidden。
  为了提升用户体验,访问页面出现403错误时,定位到403.html(即跳转迟到另一个页面)
  server标签中error_page403/403.html;《----此路径是相对于root   html/www;
  出现404错误时,定位到404.html
  fastcgi_intercept_errors on;
  error_page404/404.html;
  自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面即错误页面


页: [1]
查看完整版本: nginx基础优化