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,因为这可以避免文件在不同文件系统中被不必要拷贝。
《口才与演讲技巧:领导脱稿演讲与即兴发言》内容简介:本书将从演讲的内容、演讲姿态、演讲声音、演讲辅助工具等多个方面全面帮助
本书是CSS3领域的标准性著作,由资深Web前端工程师根据CSS3的最新技术标准撰写。内容极为全面、丰富和翔实,由浅入深地讲解了CSS
Reinforcementlearning,oneofthemostactiveresearchareasinartificialintelligence,is...
Thisbookprovidesthetheory,practicaldetails,andtoolsnecessaryforbuildingvisualiza...
《C++编程规范:101条规则准则与最佳实践》中,两位知名的C++专家将全球C++界20年的集体智慧和经验凝结成一套编程规范。这些规范可
Thiswell-respectedtextoffersanaccessibleintroductiontofunctionalprogrammingconce...
InjustafewyearsPHPhasrapidlyevolvedfromasmallnichelanguagetoapowerfulwebdevelopm...
《官方 Scratch 3.0 编程趣味卡:让孩子们爱上编程(全彩)》内容简介:Scratch是目前热门的儿童编程学习软件,自诞生之日起就受到
《创业就是构建美好关系》内容简介:创业就是一场修行,谋生又谋爱,爱就是一种美好链接,创业者和周遭的关系,将影响企业发展和人
TheLinuxProgrammingInterfacedescribestheLinuxAPI(applicationprogramminginterface...
本书脱离特定的语言特性,关注各种OOP语言的共同实践做法,展示如何通过函数式语言解决问题。例如,如何利用函数式语言,通过高阶
《赋能业务》内容简介:现有团队的定位与公司的需要脱节?团队积累的技能和经验,并不符合公司的需求方向?某些部门和团队的工作变
《新媒体跨界交互设计》内容简介:本书从传播媒介发展、网络互动、软硬件结合、可视化编程、体感交互技术、跨平台交互引擎六个方面
实用数据库教程 本书特色 《实用数据库教程》是数据库的*新教程,它包括数据库原理、数据库设计模式和数据库应用,共计3篇16章。其中第2篇的第6、7、8三章为数据...
《深入搜索引擎:海量信息的压缩、索引和查询》是斯坦福大学信息检索和挖掘课程的首选教材之一,并已成为全球主要大学信息检索的主
《宇宙奥德赛:穿越银河系》内容简介:一场关于银河系的恒星世界之旅。我们将游历12个位于银河系内、经过精挑细选的景点,依次是半
ThisinstructorsmanualandreadersguideaccompaniesthesecondeditionofStructureandInt...
《HTML5+CSS3+JavaScript前端开发基础》内容简介:本书面向Web前端开发初学者,全面系统地讲解了HTML5、CSS3、JavaScript基础...
本书是美国艺术与设计专业品牌教材,是关于字体设计应用的基础知识的基础读物,同时具有一般广泛性,从字体设计的宏观到微观,都
《动态智力:儿童思维训练家庭解决方案(5-6岁)》内容简介:教具简单易收纳,两套教具(mathlink+研发棋牌)研发上百种玩法,亲子