Nginx 一款 轻量级 的web 服务器 / 反向代理服务器。

优点:

  • 占用内存少
  • 并发能力强
  • 运行稳定

并发量: 5w 并发链接


特性:

  • 反向代理
  • 负载均衡

网址:

nginx: download

nginx 中文文档

Tengine 淘宝 基于 Nginx 研发的 web 服务器。
简介 - The Tengine Web Server

使用场景

1.高并发

image.png

2.正向代理

image.png

3反向代理

解决方案——池

  • 刚开始的时候时候创建多个请求等待使用。
  • 使用完毕后不会销毁,而是重新归还池
  • 如果业务量比较大,通过池控制最大连接数

HA  高可用
LB 负载均衡

#安装

  1. wgt downloadurl.tar.gz
  2. tar -zxvf name.tar.gz
  3. cd name
  4. # 安装依赖
  5. yum install gcc pcre-devel zlib-devel openssl-devel -y
  6. # 设置安装路径
  7. ./configure --prefix=/opt/bdp/nginx
  8. make && make install
  9. # 启动
  10. /opt/bdp/nginx/sblin/nginx
  11. # 退出
  12. pwd/nginx -s quit
  13. # 使用新的配置文件重新启动
  14. pwd/nginx -s reload

配置文件

  1. # 用户和用户组
  2. # 指定工作进程数量(一班时cpu 数量)
  3. # 指定错误日志
  4. # pid
  5. # nginx 链接配置模块
  6. # 指定每个工作进程最大连接数量
  7. # http 配置模块
  8. # 通过 include 加载 mime.types 文件,里面的 types {} 模块将文件扩展名映射到响应的 MIIME 类型
  9. # 定义响应的 默认 MIME 类型
  10. # 吸入格式 main 的内容格式(main 是名称,可改名)
  11. # 指定访问日志的格式为main
  12. # 保存活动的客户端连接超时时长设置 keepalive_timeout
  13. # 是否启动 gzip
  14. # 虚拟主机配置
  15. # 监听端口号
  16. # 监听的域名
  17. # 默认的字符集
  18. # 访问日志
  19. # 特定的目录重定向
  20. # 设置请求的根目录
  21. # 定义索引、按顺序匹配
  22. # 定义404 错误的uri
  23. # 定义50x 错误页面
  24. # 正在表达式匹配php文件
  25. location ~ \.php$ {
  26. # 设置代理服务器协议和地址,以及应该映射在的可选 URI
  27. proxy_pass http://127.0.0.1;
  28. }
  29. # 正在表达式匹配php文件 php-fastcgi 配置
  30. # 根目录
  31. # fastcgi 地址和端口
  32. # fastcgi 服务器参数
  33. # 加载 conf/fastcgi_params 文件
  34. #user nobody;

负载均衡 反向代理

  1. upstream dbp {
  2. server 192.158.2.12:8080;
  3. server 192.158.2.13:8080;
  4. server 192.158.2.14:8080;
  5. }
  6. server {
  7. listion 80;
  8. server_name www.abc.dom;
  9. location / {
  10. # root html;
  11. # index index.html;
  12. proxy_pass http://dbp;
  13. }
  14. }

负载均衡的策略

轮询(默认)
依次转发给配置的服务器

权重

  1. upstream abcd {
  2. server 192.1.1.23:8080 weight=1;
  3. server 291.1.3.23:8080 weight=3;
  4. server 291.1.3.24:8080; # weight=1 默认值
  5. }

最少连接数

  1. upstream abcd {
  2. least_conn;
  3. server 103.23.23.3:8080
  4. server 103.23.23.4:8080
  5. }

iphash

  1. upstream abcd {
  2. ip_hash;
  3. server 103.23.23.3:8080
  4. server 103.23.23.4:8080
  5. }

session 一致性

使用 redis 存储session

2021最新Nginx教程5分钟轻松掌握『完整版』_哔哩哔哩_bilibili