Nginx Nginx ,是一个 Web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议 作用:1.作为 http server 2.反向代理服务器 3.实现负载均衡 4.虚拟主机 Nginx 常用命令: 1.启动 nignx 2.停止 nignx -s stop / nignx -s quit. 3.重载配置 nignx -s reload / service nginx reload 4.查看版本 nginx -v 5.查看配置是否正确 nignx -t Nginx 常用配置 1.worker_process 8; 工作进程个数 2.worker_connections 65535; 并发处理连接数 3.listen 80; 监听端口 4.server_name www.xxx.com; 允许域名 5.root 根目录 6.index index.html访问跟文件 日志 error_log /data/logs/nginx/error.log; # 错误日志打印地址 access_log /data/logs/nginx/access.log; # 进入日志打印地址 log_format main '$remote_addr"$request" ''$status $upstream_addr "$request_time"'; # 进入日志格式 优点 1.跨平台配置简单 2.非阻塞高并发 3.内存消耗低 4.开源成本低 5.性能稳定 反向代理 反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和 Web 服务器之间的中间层。这对于安全方面来说是很好的,特别是当我们使用 Web 托管服务时。 正向代理 client(已知目标服务器) -> 代理服务器-> 目标服务器 Nginx处理http请求 1.Nginx启动加载配置文件解析ip,port.然后在Master进程里面初始化Socket(创建Socket,绑定IP监听端口等) 2.调用fork函数创建出多个子线程 3.子线程竞争进入新的连接,客户端进行三次握手,建立连接子线程得到连接 4.客户端与服务端交换数据 5.Nginx或者客户端关闭连接 Nginx如何实现高并发的 每一个请求会有一个worker进程去处理,请求发出后不在阻塞,进入休息阶段,如果返回了就接着处理,采用单线程非阻塞异步处理请求 Nginx负载均衡策略 1.轮询 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 2.IP哈希 ip_hash 每个请求按照ip 的hash结果分配,每个访客固定服务器,解决session共享的问题 3.最少连接 请求被分配到活动连接数量最少的服务器 4.权重配置,最大失败数量等 Nginx 健康检查 自带模块 ngx_http_proxy_module 和 ngx_http_upstream_module 对后端节点做健康检查