什么是nginx
nginx是一款免费的、自由的、开源的、高性能HTTP服务器和反向代理服务器,nginx 专为性能优化而开发,性能是其最重要的要求,十分注重效率,能支持高达 50000 个并发连接数。
nginx有哪些功能
- 正向代理
用户需要手动配置代理服务器,可以配置一个代理服务器
- 反向代理
反向代理,“它代理的是服务端”,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
- 负载均衡
一个请求过来,nginx可以动态的把这个请求分配给不同的服务器。这种就是负载均衡,避免一个服务器压力过大,可以支持更多的请求。
支持的负载均衡算法有:
- 轮询(默认)。
- weight,代表权,权越高优先级越高。
- fair,按后端服务器的响应时间来分配请求,相应时间短的优先分配。
- ip_hash,每个请求按照访问 ip 的 hash 结果分配,这样每一个访客固定的访问一个后端服务器,可以解决 Session 的问题。
- 动静分离
一个请求过来,我们可以把例如图片之类的静态文件自己映射处理,把动态的请求转发给tomcat之类的服务器去处理。
- 限流
Nginx使用的限流算法是漏桶算法,在http块中,配置基础的限流配置:
http {
limit_req_zone$binary_remote_addr zone=mylimit:10m rate=10r/s;03 server {
location /test/ {
limit_reqzone=mylimit;
proxy_passhttp://backend;
}
}
}
- 高可用
nginx经常和keepalive组合完成高可用 - 黑白名单
nginx可以配置黑白名单
- 好用的配置
worker 数应该和 CPU 数相等
欢迎关注公众号蜜蜂技术巢了解更多知识