`
阅读更多
  • 一、绑定cpu线程,减少cpu切换开销,避免不同的CPU缓存失效
  • #指定四个数cpu
    worker_processes 4;
    #比如8核服务器,绑定0、1、4、7号cpu
    worker_cpu_affinity 00000001 00000010 00001000 10000000;
    
    [b][*]二、屏蔽无效爬虫
    [/b]
    一些情况下,做seo运营的网站,我们是避免死链,要求内容也多,基本上百度,google,360蜘蛛不拒绝,百度现在是机器+人工+人工,要求较高。
    但是一些蜘蛛对网站会域名对运营一点作用都没有,都需要屏蔽,会严重影响系统性能,占用应用资源,特别是一些主页开启资源特别多的网站,直接影响到网站或者一些api使用。
    所以要屏蔽一些无用的蜘蛛。
    
    if ($http_user_agent ~* "DotBot|Amazonbot|MJ12bot|ApacheBench|WebBench|HttpClient|Curl|^$|AhrefsBot|BLEXBot|^-$|WordPress|SemrushBot|MegaIndex.ru) {
    	return 403;	
        } 

  • 三、开启压缩
  • #nginx支持gzip压缩
    http 
    {
     ...
      gzip on;
      gzip_min_length  1k;
      gzip_buffers     4 50k;
      gzip_http_version 1.0;
      gzip_comp_level 2;

    #需要格式化的类型
      gzip_types       text/plain application/x-javascript text/css application/xml;
      gzip_vary on;

    #开启brotli压缩,比gzip压缩效率高,要额外安装插件,返回Content-Encoding格式是:br,也能防止一些比较lower的爬虫爬数据,这里不写


  • 四、设置页面缓存
  • 有一些url打开请求比较慢或者一些静态数据,而且不需要一直请求后端应用,这时候ngnix可以加入缓存,(服务器硬盘最好采取ssd)

    http 
    {
    proxy_cache_path /usr/local/nginx/cache1 levels=1:2:2 inactive=1d max_size=100g keys_zone=one:500m loader_threshold=300 loader_files=2000;
    
    proxy_cache_path /usr/local/nginx/cache2 levels=1:2:2 inactive=30d max_size=100g keys_zone=two:500m loader_threshold=300 loader_files=2000;
    server {
         proxy_cache one;
         #慢请求
         location /slow_request {
            # 指定keys_zone为one的
            proxy_cache one;
            # 仅对响应200的有效,保存5min
            proxy_cache_valid 200 5m;
            proxy_cache_key $host$uri$is_args$args;    
            proxy_pass http://127.0.0.1:8080;
         }
    
         location /static_data {
            # 指定keys_zone为one的
            proxy_cache two;
            # 仅对响应200的有效,保存5min
            proxy_cache_valid 200 5m;
            proxy_cache_key $host$uri$is_args$args;    
            proxy_pass http://127.0.0.1:8080;
         }
    }
    

  • 五、开启零copy、直接内存
  • nginx支持sendfile零copy,省去传输到应用缓冲的开销,也支持直接内存
    location /video/ {
    sendfile on;
    #开启异步
    #aio on;
    #开启直接内存,不能跟sendfile一起用;这个为什么,就要去研究一下io传输技术,说起来有点啰嗦,先不说了
    #directio 8m;
    }
    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics