nginx基本概念
nginx是一个高性能HTTP和反向代理web服务器,提供邮件功能;占用内存少。为性能优化而开发,效率高。支持热部署,稳定性高
反向代理
正向代理:
局域网内客户访问外网服务器,需要访问外网的服务器;访问需要经过一个代理服务器,这就是正向代理。
反向代理:
只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器后再返回客户端。暴露出来的只有反向代理服务器地址,隐藏了真正的服务器IP地址。
正向代理是隐藏客户端,反向代理是隐藏服务器
负载均衡
客户端的请求到反向代理服务器,反向代理服务器将请求平均发送到不同的服务器;将负载分发到不同的服务器。也就是负载均衡
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
nginx常用命令和设置
常用命令
./nginx 启动nginx服务
./nginx -v stop 停止nginx服务
./nginx -v 查看版本号
配置文件
nginx.conf
第一部分 全局块
从配置文件开始到events块之间的内容,设置一些影响服务器运行的配置命令。包括nginx服务器的用户组、允许生成的worker process数、进程PID存放路径、日志存放路径等。
worker_processes 1; //值越大,支持的并发处理量也越大
第二部分 events 块
events块涉及的指令主要影响nginx服务器和用户的网络连接
worker_connections 1024; //支持的最大连接数
第三部分 http 全局块
此块包含http全局块和server块
http块包含文件引入,MIME-TYPE定义、日志自定义、连接超时时间、单链请求数上线等。
server块和虚拟主机密切联系,可以配置本虚拟机主机的监听配置和本虚拟主机的名称IP配置。
一个server块可以配置多个location块,这块可以对虚拟主机名称之外的字符串进行匹配,对特定请求进行处理。地址定向、数据缓存和应答等功能。
nginx分配策略
- 轮询
- 权重 weight 越大分配的越多
- ip_hash每个请求按照访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
- fair(第三方)按照后端服务器的响应时间分配
一个master多个worker的好处
- 可以使用nginx -s reload进行快速热部署
- 每个worker是个独立的进程,如果其中一个worker出现问题,其他worker是独立的可以继续进行争抢,实现请求过程,不会让服务中断
worker设置的数量和服务器CPU的数量应该相等。
注意点
发送请求占用了worker的几个连接数?
两个或者四个
nginx有一个master,4个worker,每个worker支持最大的连接数1024,支持的最大并发数是多少?
普通的静态访问最大并发数是:worker_connectionworker_processes/2;如果是HTTP做反向代理,最大并发数是work_connectionswork_processes/4.