Nginx url_hashurl_hash与ip_hash类似,但是其按照访问URL的hash结果来分配请求,使得每个URL定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景中,如代码清单4-11所示。代码清单4-11 Nginx url_hashupstream zachary.sh.cn { server 192.168.1.10:8081; server 192.168.1.11:8081; hash $request_uri; hash_method crc32; }6. Nginx least_connleast_conn把请求转发给连接数较少的后端服务器,如代码清单4-12所示。代码清单4-12 Nginx least_connupstream zachary.sh.cn { least_conn; #把请求转发给连接数较少的后端服务器 server 192.168.1.10:8081; server 192.168.1.11:8081; }Nginx least_conn的代理示意如图4-11所示。图片: 图4-11 Nginx/upstream ip_hash代理图4.5 Nginx缓存
使用Nginx代理缓存可以减少后端服务端压力,提升网站性能,减小并发延时。Nginx设置缓存的代码如代码清单4-13所示。代码清单4-13 Nginx设置缓存upstream zachary.sh.cn{ server 192.168.10.1:8081; server 192.168.10.2:8082; } proxy_cache_path /cache levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m use_temp_path=off; server { listen 80; server_name zachary.sh.cn; index index.html; location / { proxy_pass http:// zachary.sh.cn; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_cache cache; proxy_cache_valid 200 304 6h; proxy_cache_valid any 6m; proxy_cache_key $uri$request_body; proxy_cache_methods GET POST; add_header Nginx-Cache "$upstream_cache_status"; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; } }在代码清单4-13中,proxy_cache_path /cache用于设置Nginx缓存资源的存放地址。各参数说明如下。1)levels:按照两层目录分层。2)key_zone:在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),Nginx可以快速判断一个请求是否命中缓存,1MB可以存储8000个key,10MB可以存储80000个key。3)max_size:最大缓存空间,如果不指定,会使用所有硬盘空间,当达到配额后,会删除最少使用的缓存文件。4)inactive:未被访问文件在缓存中的保留时间。如果文件60分钟未被访问,则不论状态是否为expired,缓存控制程序都会删掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的含义是不同的,expired只是使缓存过期,但不会删除缓存文件,inactive是删除指定时间内未被访问的缓存文件。5)use_temp_path:如果为off,则Nginx会将缓存文件直接写入指定的缓存文件中,而不是使用temp_path存储。official建议为off,因为这可以避免文件在不同文件系统中被不必要拷贝。
《多尔衮:一指通天》内容简介:爱新觉罗·多尔衮是努尔哈赤的第14个儿子,他的母亲是努尔哈赤最喜欢的一个妃子。多尔衮的一生,是
《软件项目成功之道》的作者JaredR.Richardson以精炼、风趣的语言揭开了项目管理过程的神秘面纱。所涵盖的内容涉及工具、使用项目
本书主要介绍了运用JavaScript搭配DHTML技术进行Web开发和Web设计的原则和技巧。全书内容以条目形式罗列,覆盖了在Web开发和Web设
移动通信是当前发展最快、应用最广和最前沿的通信领域之一。本书共分为七章,主要介绍了移动通信的基本概念,移动通信网网络技术
Java办公自动化项目方案精解(附光盘) 内容简介 本书采用当今*流行的Java语言来实现前台的控制界面。后台数据库考虑到读者的广泛性,采用当今功能*为强大的O...
《PyTorch深度学习实战》内容简介:本书帮助读者快速深入深度学习。在过去的几年里,我们看到深度学习成了新的动力。它从学术界一路
"数十亿人身在其中、数十万亿美元的新生意,你我此生最大的科技革命,这次转型将如何改变我们的生活?又如何使我们做生意的方式起
《JavaScript修炼之道》是JavaScript的实战秘籍。作者将自己多年的编程经验融入其中,不仅可以作为学习之用,更是日常JavaScript
《算法之美》内容简介:我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时
《简单·丰盛·美好:面饭、蔬食配菜》内容简介:不远之前的博客时代,一个中断博士学业、改行入厨的台湾女生曾以“厨房里的人类学
Thenationalbestsellerbythe"ultimatethinkingmachine"(Forbes)whosepredictionsforth...
本书是经典程序设计思想与C++开发实践的完美结合,是C++之父回归校园后对C++编程原理和技巧的全新阐述。书中全面地介绍了程序设计
《上班族最爱读的心理呵护书》内容简介:在现代社会中,上班族是一个非常重要的群体,在自己的岗位上默默地耕耘。然而,他们在为社
《Python3.6从入门到精通(视频教学版)》内容简介:本书用于Python编程快速入门,注重实战操作,帮助读者循序渐进地掌握Python3.6
《画笔下的城市》内容简介:在艺术家的眼里,每个城市都有独特的本土文化和艺术风格。本书收集了26位艺术家的城市手绘作品,包括从
博客(blog),这个由“网络日志”(weblog)派生出来的词,早已跳脱了“日志”的范畴,担当起信息传播、情感交流、产品宣传等等职责
《发明改变生活》内容简介:在璀璨的人类文明中,各式各样的发明层出不穷,为我们的生活带来了日新月异的变化。那发明是如何改变生
精通Oracle SQL-(第2版) 本书特色 《精通oracle sql(第2版)》语言精炼、风趣,所涵盖的内容涉及sql核心、sql执行、分析函数、联结、测...
《最美中国故事(和谐篇)》内容简介:本书是“社会主义核心价值观系列连环画”中的小学十二种图书之一。小学十二种图书,每种围绕
《碎片与重构:互联网思维重塑大教育》以开阔的视野、全新的思维、通俗的文笔,描绘了一幅网络时代教与学的“清明上河图”。内容