nginx并不是一门技术,而是高性能的反向代理服务器,但是nginx的配置确实是一门技术活!

nginx使用C语言进行开发,可以说跟JAVA没半毛钱关系,也可用在PHP服务器开发,大数据等领域!

但是因为JAVA在开发web服务器中占比十分之高,而高性能的后台服务却少不了nginx的参与,所以JAVA程序员不得不学习nginx原理和使用!

先来看下什么是nginx?

nginx是一种轻量级,高性能,易配置,稳定度高的反向代理服务器,只需要简单的配置就可以得到一台具有负载均衡功能的稳定服务器!

nginx有什么用?

1,反向代理:nginx的反向代理模式,能让客户端感知不到真正的服务器的存在,所有的请求都全部落在nginx服务器上,由nginx基于一定的策略进行请求转发到不同的服务器上

2,负载均衡:所有落在nginx中的请求使用配置所得的负载均衡策略进行转发到不同服务器上,负载均衡方式有:轮询,权重,ip hash等方式供用户选择。负载均衡解决了单台应用存在的性能瓶颈!

3,支持高并发:诸如tomcat这样的应用服务器不能支持大量的连接,(貌似tomcat9改进了?)在高并发环境容易崩溃,而nginx是基于epoll模型的异步非阻塞服务器,只有当连接中有io事件的时候,才会通知进程进行处理,既避免了频繁创建和销毁线程的开销,又没有维持多个长连接的内存开销,所以nginx能支持十万,百万级并发!

4,静态服务器,用的不多!

怎么用nginx?

真的很简单,配置几行就能体验高性能的服务器,自行百度!

为什么要学nginx?

1,因为性能好,原因如上。。

2,因为面试要问,不仅问反向代理,负载均衡,均衡策略,如何配置,如何优化等等?

总之,nginx之所以高效,是因为底层模型很高效,打算改天详细说下epoll模型,用来应付面试还是极好的,敬请关注。。

更多推荐

Java nginx是Java后台开发最常用最入门的技术吗?