10TB超大容量不限速!个人云存储有这一个就够了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10TB超大容量不限速!个人云存储有这一个就够了相关的知识,希望对你有一定的参考价值。

参考技术A   数据的重要性是不言而喻的,所以我们需要把电脑、手机上日积月累的数据进行保存、备份,甚至对重要的数据进行加密避免隐私泄露。由于产生的数据量更大,此前使用的U盘、小容量硬盘等已经无法满足需求,而且随着智能设备的发展,人们还需要把一些数据分享出去,所以更大容量、能分享的云存储方案成为人们关注的焦点。但是目前常用的第三方网络存储,一方面受到容量的限制,另一方面也受到网速的限制,而且在成本的投入上也是持续的,即便如此,对于数据的安全和隐私也无法得到保障。所以,联想最近推出了一款个人云存储设备,最大支持10TB存储容量,上传下载不限速,还能够实现多设备数据存储,数据集中管理,实时备份和分享,完成多场景下的数据自由传输,为我们提供了无缝连接数字生活与工作的存储解决方案。
  联想个人云存储提供了无盘版、4TB单盘版和4TB*2双盘版,售价分别为999元、1799元和2899元。除了硬件上的一次性投入,在功能上与百度网盘有着非常相似的使用体验,但是在容量、传输速度以及数据的私密性上,联想个人云存储有着先天的优势。究竟这两款设备该选谁?不妨让我们来做个对比。
  由于联想个人云存储是以物理硬件的方式存在,而百度网盘只需要安装应用即可,所以这里我们首先来看看联想个人云存储的设备是怎样的,之后再进行功能对比。
  联想个人云存储包装与外观特点

  智能安全、智能健康、智能娱乐、智能办公学习,是联想SIoT战略的四大细分场景,定位家庭级智能存储设备的联想个人云存储,承担着智能化数据管理以及完善联想智能化布局的主要一环。

  沉甸甸的包装内部除了一个联想个人云存储主机,还包括一块全新的2.5英寸4TB SATA 3.0接口的机械硬盘,配件包括电源适配器、一根网线、固定硬盘用的螺丝钉,一把十字起子和一个简易说明书。主机和硬盘都采用了较厚的泡沫棉保护,确保运输中的万无一失。

  联想个人云存储机身为白色,采用竖纹理设计,这样的设计能够减少机身厚度,同时利于散热。正面看机身犹如罗马殿堂的柱子,庄严而典雅。顶部的盖子和底座采用了金色点缀,增添了时尚色彩,能够与家庭家居完美地融合。

  接口位于机身后部,从上到下为 RESET 孔、2 个 USB 3.0接口、千兆网线接口和圆形的电源插口。2个USB 3.0还可以外接个人云伴侣(磁盘阵列存储),将空间轻松扩展至128TB,所以对于家庭用户来说,无须担心容量不够用。

  在连接与速度方面,联想个人云存储不受条件限制,可穿透各种防护网络,支持全球内外网访问。在安装与部署方面,相较于传统复杂的NAS流程,联想个人云存储只需要连接网线、电源,下载APP后绑定、格式化硬盘,轻松几步就能完成,无需专业的网络、硬件技能。

  开启顶盖后可以看到内部的A、B 两个硬盘托架,能够同时放下两块 2.5'' 的 HDD,抽屉式的托架,取出后安装好硬盘再放下去插紧就OK了,非常简单。硬盘支持RAID及LARGE模式,上盖内里印有设备绑定二维码,用来绑定APP(管理员)。但是这里也提醒一下,硬盘托架可能会很紧,取出或插入时需要用一些力。同时也建议在下一代能设计成弹出式,或者改进一下抽拉时的顺畅感。

  可能很多网友也会疑问为什么不用固态硬盘?简单的说,一方面是成本,大容量的固态硬盘价格依然居高不下;另一方面众所周知的使用寿命和数据可恢复性,机械硬盘目前还是最佳的选择。但并不是说联想个人云存储设备就不能使用固态硬盘,用户仍然可以自行安装SATA接口的SSD。

  由于联想个人云存储设备是长期在线使用,尤其是长时间的数据读写时,硬盘还是会产生热量,所以还在机身底部设计了散热风扇,并通过底座隐藏的散热口排出,而且在噪音控制方面也做的很好,即便是放在卧室的床头边也不会被干扰。

  简单了解完联想个人云存储设备的外观和基本功能,大家更加关注的是这个设备究竟能做什么?与一些网盘相比有哪些优点?所以我们接下来就以使用者众多的百度网盘为例来做个对比,看看联想个人云存储是否值得购买。
  客户端:无缝连接 支持平台广泛

  目前能够连接网络的设备越来越多,除了电脑和手机,还包括平板电脑、电视等,可以说有屏幕的地方就有江湖。在操作系统上分为Windows、Linux、ios和安卓系统,联想个人云存储和百度网盘都对各平台和系统进行适配,实现无缝连接,尤其是在布局智慧家庭方面,联想个人云存储结合的更加紧密。

  联想个人云存储的数据守护者APP界面与百度网盘功能基本类似,包括对文件的自动分类,但是联想个人云存储还支持对百度网盘的数据存取和离线下载,所以在兼容性和文件管理方面,联想个人云存储更加贴心。

  安装数据守护者app可以轻松的在手机上存取资料和管理文件,以及用于配置个人云存储设备,这也是与百度网盘不太一样的地方。图形化的界面,以及指引绑定、设置,即便是新手也能轻松胜任,非常人性化。但是需要提醒大家的是,联想个人云存储设备支持RAID1和Large两种模式,两者只能选择其一,中途如果想要切换模式,则会对磁盘进行重新格式化,会删除所有数据,所以需要谨慎操作。

  除了常规文件的存取,百度网盘app还加入了笔记、小说、冲印商城等第三方合作应用,在个人服务方面更加多样化,毕竟百度网盘已经做了很多年,也有着庞大的用户群,在用户体验方面积累了更多的经验。

  除了作为存储,网盘最大的功能特色就是分享,联想个人云存储APP在分享功能上支持好友分享和链接分享,其中链接分享还支持1天和7天期限。百度的分享功能相对要全面,包括微信、朋友圈、QQ、微博,以及私密链接和二维码等多种方式,同样支持分享的有效期。

  客户端的对比方面,差别并不是很大,只是在分享方面,数据守护者相对弱一些,以及暂时不支持压缩包的在线解压缩等。百度网盘APP对非会员的限制比较多,比如想要在线解压缩,需要超级会员;此外,如果用户想要在线播放音乐、视频,由于非会员限速问题,百度网盘的体验要差很多。而联想个人云存储,我们可以看做是“点对点”的读取,没有中间的转换,所以读取会流畅的多。
  容量对比:联想个人云存储最大支持10TB容量 还可扩展

  以目前个人或家庭对存储容量的需求,GB级别不够用,但是上升到TB、数个TB的时候就足够用了。
  联想个人云存储内置双硬盘位,最大支持10TB容量,相当于可容纳200万张高清照片,或100万首无损音乐,或1万部高清影片。如果你是骨灰级玩家,对容量有更大的需求,那么这款个人云存储还可以通过2个USB 3.0高速接口外接个人云伴侣(磁盘阵列存储),就能轻松扩展至128TB。正是因为采用的是物理硬盘,联想个人云存储理论上可以无限扩展,但毕竟是定位家庭、个人云存储,能达到10TB容量需求的用户已经极少,所以我们几乎可以忽略空间的限制。
  简而言之,联想个人云存储一次投入,容量无限。

  百度网盘初始免费容量是根据完成一定任务量来决定的,普通会员提供2TB容量。需要注意的是,百度在2018年底宣布此前注册用户至2019年底没有登录过的免费用户,将调整至100GB,超级会员可以扩展至最大5TB容量,连续包年的会员费为263元。
  实际上5TB的容量对于大多用户也足够使用,但是却以会员年费为代价,而且一旦不续费,您的文件可能就不再是您的文件,对功能的限制也是颇多。如果只是作为小文件的备份,比如手机图片、办公文档等,百度网盘也是足够使用。但是对于较大的文件、尤其是高清影视,无论从容量还是上传、下载的速度等方面,并不建议使用百度网盘收藏。

  所以两者对比很明显,联想个人云存储成本更低、容量更大、并具有无限可扩展性,更是作为资料收藏的绝佳存储方案;而百度网盘容量和功能受会员限制,具有很多不确定性,推荐存储较小文件、临时性文件,如果是重要资料且需要永久收藏的,就要慎重考虑网络存储的方案。
  传输速度比拼:联想个人云存储不限速

  对于大多数用户来说,使用网盘或个人云存储,最多的行为就是上传和下载文件。
  首先说说百度网盘,相信所有免费用户在使用百度网盘上传下载文件时,都会体会到那种龟速到痛不欲生吧。不管你是百兆宽带,还是光纤,只要不充值,百度网盘限速能限到你哭。

图:百度网盘非会员限速
  如果你存储的文件很大,或者是朋友分享给你一个很大的文件,或者是数百张图片,而且你还不是超级会员,那千万不要用网盘分享,还不如用QQ发送来的快。此外,对于非会员,传输的文件还不能超过4GB。

图:非会员限制不能超过4GB
  但如果你是长期网盘依赖用户,那就不妨充个超级会员,上传和下载的速度还是有保障的。

图:超级会员可解除限速
  如果把百度网盘看作是公有云,那么联想个人云存储就是私有云。联想个人云存储不仅能够适应各种网络环境,包括身处海外也能轻松连接使用。上传和下载速度方面,得益于联想的全球网络节点支持,无论是内外网访问或是海外访问,联想个人云存储都拥有高速上传下载加速系统,能够无缝连接用户的数字生活与工作。需要说明的是,在上传或下载时,联想个人云存储最多支持5个文件多任务同时进行,单文件上传、下载速度最快。

图:多文件上传时,网速被优先级分配

图:单文件上传时速度最快

图:单文件下载时速度最快
  在上传和下载的网速对比方面,联想个人云存储在整个传输过程中不参与任何数据交换,所以文件传输不受限制,也就有着绝对的优势,你的网速有多快就能上传、下载多快。但是在使用中,我们也发现联想个人云存储客户端,暂时还不支持文件、文件夹的拖拽,只能通过一级一级的路径选择,相信在升级版本中会添加这一快捷功能。
  安全与隐私

  个人数据的安全和隐私性越来越受到人们的重视,但是存储在公有云上的数据,实际上是保存在人家服务器上,尽管各家都声称绝不会泄露,但是谁知道呢?你把宝贝放在别人家柜子里总是不让人放心吧。
  而联想个人云存储是您的“私有云”,所有的数据都是保存在您私人的硬盘之上,从根本上避免了公有云端隐私泄露的问题。同时还采用SDVN技术加密传输,所有应用数据均在虚拟化层上传输,确保数据在内网或互联网上的安全可靠,有效保护个人数据安全和隐私问题。
  此外,联想个人云存储设立多账户管理机制,一台主机多人共享的同时,还能够设定公共空间和私密空间。通过管理员设置不同权限,将家庭账户进行空间隔离,并配置加密保险箱技术,进行二次保护,管理员也无法访问他人账户,方便多人共享数据的同时,又能够保护个人数据隐私。

  实际上很容易理解,保存在你个人硬盘上的数据永远都是你的,保存在网上的资料不一定就是你的,哪怕是交了费。
  体验总结:

  综合来看,联想个人云存储在更大容量、更快速度、更加私密等方面都具有无可比拟的优势,而百度网盘仅仅是对续费的超级会员提供最多5TB容量、不限速的服务,但是在数据的私密性和安全性上,尤其上长远来看,百度网盘还是存在不少后顾之忧。
  个人云存储无论在数据传输方面、数据安全和用户隐私方面,以及在未来智慧家居的构建上,都将逐渐成为家庭的数据中心,成为每个家庭的刚需的智能设备。所以相对于建立在公有云上的网盘,联想个人云存储可以说已经先入为主,并将主导未来。还是那句话,一次性投入,就能拥有一个永久、安全的个人数据中心。
    官方服务
      官方网站官方网站

Nginx 性能优化有这篇就够了!


 

点击上方关注 “终端研发部

设为“星标”,和你一起掌握更多数据库知识

目录:

1、Nginx运行工作进程数量

Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l

[root@lx~]# vi/usr/local/nginx1.10/conf/nginx.conf
worker_processes  4;
[root@lx~]# /usr/local/nginx1.10/sbin/nginx-s reload
[root@lx~]# ps -aux | grep nginx |grep -v grep
root 9834  0.0  0.0 47556  1948 ?      Ss  22:36  0:00 nginx: master processnginx
www 10135  0.0 0.0  50088  2004 ?       S    22:58  0:00 nginx: worker process
www 10136  0.0  0.0 50088  2004 ?        S   22:58  0:00 nginx: worker process
www 10137  0.0  0.0 50088  2004 ?        S   22:58  0:00 nginx: worker process
www 10138  0.0  0.0 50088  2004 ?        S   22:58  0:00 nginx: worker process

2、Nginx运行CPU亲和力

比如4核配置:

worker_processes  4;
worker_cpu_affinity 0001 0010 0100 1000

比如8核配置:

worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 0000100000010000 00100000 01000000 10000000;

worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。

3、Nginx最大打开文件数

worker_rlimit_nofile 65535;

这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。

注:文件资源限制的配置可以在/etc/security/limits.conf设置,针对root/user等各个用户或者*代表所有用户来设置。

*   soft  nofile   65535
*   hard  nofile   65535

用户重新登录生效(ulimit -n)

4、Nginx事件处理模型

events 
    use epoll;
    worker_connections 65535;
    multi_accept on;

nginx采用epoll事件模型,处理效率高。

work_connections是单个worker进程允许客户端最大连接数,这个数值一般根据服务器性能和内存来制定,实际最大值就是worker进程数乘以work_connections。

实际我们填入一个65535,足够了,这些都算并发值,一个网站的并发达到这么大的数量,也算一个大站了!

multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接,默认是on,设置为on后,多个worker按串行方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态,设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,直到连接分配完毕,没有取得连接的继续休眠。当你的服务器连接数不多时,开启这个参数会让负载有一定的降低,但是当服务器的吞吐量很大时,为了效率,可以关闭这个参数。

5、开启高效传输模式

http 
    include mime.types;
    default_type application/octet-stream;
    ……

    sendfile on;
    tcp_nopush on;
    ……
  • Include mime.types :媒体类型,include 只是一个在当前文件中包含另一个文件内容的指令。

  • default_type application/octet-stream :默认媒体类型足够。

  • sendfile on:开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

  • tcp_nopush on:必须在sendfile开启模式才有效,防止网路阻塞,积极的减少网络报文段的数量(将响应头和正文的开始部分一起发送,而不一个接一个的发送。)

6、连接超时时间

主要目的是保护服务器资源,CPU,内存,控制连接数,因为建立连接也是需要消耗资源的。

keepalive_timeout 60;
tcp_nodelay on;
client_header_buffer_size 4k;
open_file_cache max=102400 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1;
client_header_timeout 15;
client_body_timeout 15;
reset_timedout_connection on;
send_timeout 15;
server_tokens off;
client_max_body_size 10m;
  • keepalived_timeout :客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接。

  • tcp_nodelay:也是防止网络阻塞,不过要包涵在keepalived参数才有效。

  • client_header_buffer_size 4k:客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过 1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。

  • open_file_cache max=102400 inactive=20s :这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

  • open_file_cache_valid 30s:这个是指多长时间检查一次缓存的有效信息。

  • open_file_cache_min_uses 1 :open_file_cache指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。

  • client_header_timeout :设置请求头的超时时间。我们也可以把这个设置低些,如果超过这个时间没有发送任何数据,nginx将返回request time out的错误。

  • client_body_timeout设置请求体的超时时间。我们也可以把这个设置低些,超过这个时间没有发送任何数据,和上面一样的错误提示。

  • reset_timeout_connection :告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。

  • send_timeout :响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接。

  • server_tokens :并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。

  • client_max_body_size:上传文件大小限制。

7、fastcgi 调优

fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
fastcgi_temp_path/usr/local/nginx1.10/nginx_tmp;
fastcgi_intercept_errors on;
fastcgi_cache_path/usr/local/nginx1.10/fastcgi_cache levels=1:2 keys_zone=cache_fastcgi:128minactive=1d max_size=10g;
  • fastcgi_connect_timeout 600 :指定连接到后端FastCGI的超时时间。

  • fastcgi_send_timeout 600 :向FastCGI传送请求的超时时间。

  • fastcgi_read_timeout 600 :指定接收FastCGI应答的超时时间。

  • fastcgi_buffer_size 64k :指定读取FastCGI应答第一部分需要用多大的缓冲区,默认的缓冲区大小为。fastcgi_buffers指令中的每块大小,可以将这个值设置更小。

  • fastcgi_buffers 4 64k :指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,如果一个php脚本所产生的页面大小为256KB,那么会分配4个64KB的缓冲区来缓存,如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp_path指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于磁盘。一般这个值应该为站点中php脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“8 32K”、“4 64k”等。

  • fastcgi_busy_buffers_size 128k :建议设置为fastcgi_buffers的两倍,繁忙时候的buffer。

  • fastcgi_temp_file_write_size 128k :在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,该数值设置小时若负载上来时可能报502BadGateway。

  • fastcgi_temp_path  :缓存临时目录。

  • fastcgi_intercept_errors on :这个指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。注:静态文件不存在会返回404页面,但是php页面则返回空白页!

  • fastcgi_cache_path /usr/local/nginx1.10/fastcgi_cachelevels=1:2 keys_zone=cache_fastcgi:128minactive=1d max_size=10g :fastcgi_cache缓存目录,可以设置目录层级,比如1:2会生成16*256个子目录,cache_fastcgi是这个缓存空间的名字,cache是用多少内存(这样热门的内容nginx直接放内存,提高访问速度),inactive表示默认失效时间,如果缓存数据在失效时间内没有被访问,将被删除,max_size表示最多用多少硬盘空间。

  • fastcgi_cache cache_fastcgi :#表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502的错误放生。cache_fastcgi为proxy_cache_path指令创建的缓存区名称。

  • fastcgi_cache_valid 200 302 1h :#用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一小时,要和fastcgi_cache配合使用。

  • fastcgi_cache_valid 301 1d :将301应答缓存一天。

  • fastcgi_cache_valid any 1m :将其他应答缓存为1分钟。

  • fastcgi_cache_min_uses 1 :该指令用于设置经过多少次请求的相同URL将被缓存。

  • fastcgi_cache_key http://$host$request_uri :该指令用来设置web缓存的Key值,nginx根据Key值md5哈希存储.一般根据$host(域名)、$request_uri(请求的路径)等变量组合成proxy_cache_key 。

  • fastcgi_pass  :指定FastCGI服务器监听端口与地址,可以是本机或者其它。

总结:

nginx的缓存功能有:proxy_cache / fastcgi_cache

  • proxy_cache的作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态。

  • fastcgi_cache的作用是缓存fastcgi生成的内容,很多情况是php生成的动态的内容。

  • proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端宽带。

  • fastcgi_cache缓存减少了nginx与php的通信的次数,更减轻了php和数据库(mysql)的压力。

8、gzip 调优

使用gzip压缩功能,可能为我们节约带宽,加快传输速度,有更好的体验,也为我们节约成本,所以说这是一个重点。

Nginx启用压缩功能需要你来ngx_http_gzip_module模块,apache使用的是mod_deflate。

一般我们需要压缩的内容有:文本,js,html,css,对于图片,视频,flash什么的不压缩,同时也要注意,我们使用gzip的功能是需要消耗CPU的!

gzip on;
gzip_min_length 2k;
gzip_buffers    4 32k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_typestext/plain text/css text/javascriptapplication/json application/javascript application/x-javascriptapplication/xml;
gzip_vary on;
gzip_proxied any;
gzip on;    #开启压缩功能
  • gzip_min_length 1k :设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1K,如果小与1K可能会越压越大。

  • gzip_buffers 4 32k :压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。

  • gzip_http_version 1.1 :压缩版本,用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可。

  • gzip_comp_level 6 :压缩比例,用来指定GZIP压缩比,1压缩比最小,处理速度最快,9压缩比最大,传输速度快,但是处理慢,也比较消耗CPU资源。

  • gzip_types text/css text/xml application/javascript :用来指定压缩的类型,‘text/html’类型总是会被压缩。默认值: gzip_types text/html (默认不对js/css文件进行压缩)

    • 压缩类型,匹配MIME型进行压缩;

    • 不能用通配符 text/*;

    • text/html默认已经压缩 (无论是否指定);

    • 设置哪压缩种文本文件可参考 conf/mime.types。

  • gzip_vary on :varyheader支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据。

9、expires 缓存调优

缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存365d,css,js,html可以缓存个10来天,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来, Expires缓存配置在server字段里面。

location ~* \\.(ico|jpe?g|gif|png|bmp|swf|flv)$ 
  expires 30d;
  #log_not_found off;
  access_log off;


location ~* \\.(js|css)$ 
  expires 7d;
  log_not_found off;
  access_log off;

注:log_not_found off;是否在error_log中记录不存在的错误。默认是。

总结:

expire功能优点:

  • expires可以降低网站购买的带宽,节约成本;

  • 同时提升用户访问体验;

  • 减轻服务的压力,节约服务器成本,是web服务非常重要的功能。

expire功能缺点:

  • 被缓存的页面或数据更新了,用户看到的可能还是旧的内容,反而影响用户体验。

解决办法:第一个缩短缓存时间,例如:1天,但不彻底,除非更新频率大于1天;第二个对缓存的对象改名。

网站不希望被缓存的内容:

  • 网站流量统计工具;

  • 更新频繁的文件(google的logo)。

10、防盗链

防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量,那么我们的解决办法由几种:

  1. 水印,品牌宣传,你的带宽,服务器足够;

  2. 防火墙,直接控制,前提是你知道IP来源;

  3. 防盗链策略下面的方法是直接给予404的错误提示。

location ~*^.+\\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ 
valid_referers noneblocked  www.benet.com benet.com;
if($invalid_referer) 
    #return 302  http://www.benet.com/img/nolink.jpg;
    return 404;
    break;

access_log off;

参数可以使如下形式:

  • none  :意思是不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)。

  • blocked  :意为根据防火墙伪装Referer头,如:“Referer:XXXXXXX”。

  • server_names  :为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

11、内核参数优化

  • fs.file-max = 999999:这个参数表示进程(比如一个worker进程)可以同时打开的最大句柄数,这个参数直线限制最大并发连接数,需根据实际情况配置。

  • net.ipv4.tcp_max_tw_buckets = 6000 :这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。该参数默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢。注:主动关闭连接的服务端会产生TIME_WAIT状态的连接

  • net.ipv4.ip_local_port_range = 1024 65000  :允许系统打开的端口范围。

  • net.ipv4.tcp_tw_recycle = 1 :启用timewait快速回收。

  • net.ipv4.tcp_tw_reuse = 1 :开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。这对于服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。

  • net.ipv4.tcp_keepalive_time = 30:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,若将其设置的小一些,可以更快地清理无效的连接。

  • net.ipv4.tcp_syncookies = 1 :开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理。

  • net.core.somaxconn = 40960  :web 应用中 listen 函数的 backlog 默认会给我们内核参数的。

  • net.core.somaxconn  :限制到128,而nginx定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。注:对于一个TCP连接,Server与Client需要通过三次握手来建立网络连接.当三次握手成功后,我们可以看到端口的状态由LISTEN转变为ESTABLISHED,接着这条链路上就可以开始传送数据了.每一个处于监听(Listen)状态的端口,都有自己的监听队列.监听队列的长度与如somaxconn参数和使用该端口的程序中listen()函数有关。somaxconn定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,对于一个经常处理新连接的高负载 web服务环境来说,默认的 128 太小了。大多数环境这个值建议增加到 1024 或者更多。大的侦听队列对防止拒绝服务 DoS 攻击也会有所帮助。

  • net.core.netdev_max_backlog = 262144  :每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

  • net.ipv4.tcp_max_syn_backlog = 262144 :这个参数标示TCP三次握手建立阶段接受SYN请求队列的最大长度,默认为1024,将其设置得大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的连接请求。

  • net.ipv4.tcp_rmem = 10240 87380 12582912 :这个参数定义了TCP接受缓存(用于TCP接受滑动窗口)的最小值、默认值、最大值。

  • net.ipv4.tcp_wmem = 10240 87380 12582912:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值、默认值、最大值。

  • net.core.rmem_default = 6291456:这个参数表示内核套接字接受缓存区默认的大小。

  • net.core.wmem_default = 6291456:这个参数表示内核套接字发送缓存区默认的大小。

  • net.core.rmem_max = 12582912:这个参数表示内核套接字接受缓存区的最大大小。

  • net.core.wmem_max = 12582912:这个参数表示内核套接字发送缓存区的最大大小。

  • net.ipv4.tcp_syncookies = 1:该参数与性能无关,用于解决TCP的SYN攻击。

下面贴一个完整的内核优化设置:

fs.file-max = 999999
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 40960
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000

执行sysctl  -p使内核修改生效。

12、关于系统连接数的优化

linux 默认值 open files为1024。查看当前系统值:

# ulimit -n
1024

说明server只允许同时打开1024个文件。

使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。

新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大,在/etc/security/limits.conf最后增加:

*               soft    nofile           65535
*               hard    nofile           65535
*               soft    noproc          65535
*               hard    noproc          65535

END -

最后说一句(别白嫖,求关注)

回复 【idea激活】即可获得idea的激活方式
回复 【Java】获取java相关的视频教程和资料
回复 【SpringCloud】获取SpringCloud相关多的学习资料
回复 【python】获取全套0基础Python知识手册
回复 【2020】获取2020java相关面试题教程
回复 【加群】即可加入终端研发部相关的技术交流群
阅读更多
用 Spring 的 BeanUtils 前,建议你先了解这几个坑!

lazy-mock ,一个生成后端模拟数据的懒人工具

在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!

字节跳动一面:i++ 是线程安全的吗?

一条 SQL 引发的事故,同事直接被开除!!

太扎心!排查阿里云 ECS 的 CPU 居然达100%

一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)


相信自己,没有做不到的,只有想不到的在这里获得的不仅仅是技术!



喜欢就给个“在看”

以上是关于10TB超大容量不限速!个人云存储有这一个就够了的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 性能优化有这篇就够了!

深入理解Hadoop HDFS,看这篇文章就够了

Linux入门的基础知识点汇总,有这篇就够了

Nginx 性能优化有这篇就够了!

Nginx 性能优化有这篇就够了!

自定义View,有这一篇就够了