【修真院java小课堂】nginx服务器有什么作用?

大家好,我是IT修真院郑州分院第8期学员,一枚正直善良的java程序员。今天给大家分享一下,修真院官网 java任务中可能会使用到的知识点:


nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?


【修真院java小课堂】nginx服务器有什么作用?20180517

1.背景介绍

什么是nginx?

  • Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
  • 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2.知识剖析

2.1反向代理

  • 客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
  • 总结:服务端

2.2负载均衡

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行

  • 当网站访问量非常大,网站站长开心赚钱的同时,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。
  • 总结:将请求分发到不同的服务器

2.3代码

  • Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。

3.常见问题

踩坑
nginx+tomcat+负载均衡

  • proxy_set_header Host $host;

4.编码实战

这里写图片描述


5.扩展思考

nginx和tomcat区别

  • nginx常用做静态内容服务和代理服务器(不是你FQ那个代理),直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。
  • 但是事无绝对,nginx也可以通过模块开发来提供应用功能,tomcat也可以直接提供http服务,通常用在内网和不需要流控等小型服务的场景。

6.参考文献

https://www.cnblogs.com/yanghj010/p/5980974.html
https://blog.csdn.net/zhangsheng_1992/article/details/51726873
https://blog.csdn.net/zhongguozhichuang/article/details/52816887
https://www.cnblogs.com/flypie/p/5153702.html
https://segmentfault.com/a/1190000008149544


7.更多讨论

Q:nginx的配置使用reload是即时生效的吗?
A:nginx -s reload可以去脚本中查看,可以看出来等同于restart,那么修改的配置文件是即时生效的

Q:能不能让固定的客户端ip访问固定的代理端服务器,就像迅雷会员一样,我会员下载和访问不会因为同一时间段人多而造成繁忙和等待
A:这里应该是业务逻辑做的,根据验证得到的级别定向指向不同的服务器

Q:NGINX负载均衡分发请求的几种方式
A:有以下几种方式
1. 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2. weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3. ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4. fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5. url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

PPT在这里

感谢大家观看!

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~http://www.jnshu.com/login/1/22140638

猜你喜欢

转载自blog.csdn.net/zhanlijueduan/article/details/80361831
今日推荐