nginx

web服务器与应用服务器的区别

  • web服务器负责处理http协议,应用服务器可以处理http内容,也可以处理其他协议,比如RPC
  • web服务器用于处理静态页面的内容,对于脚本语言陈升的动态内容,则通过WSGI借口交给应用服务器来处理
  • 一般应用服务器都集成了web服务器,自带的应用服务器甚至可以支持应用级别的功能,比如连接池,事物支持,消息服务等

为什么使用nginx

  • 处理静态文件,索引文件利率非常高
  • 高并发连接
  • 低的内存消耗
  • 稳定性高,宕机概率很低
  • 强大的反向代理和负载均衡,平衡集群中各个服务器
  • 配置简洁,配置文件通俗易懂,上手容易
  • 支持热部署,可以在不间断服务的情况下对软件进行升级
  • 提供健康检查支持
  • 自由的BSD许可(免费,可修改,可用于商业)

安装

默认安装

sudo apt install nginx
sudo systemctl status nginx
sudo systemctl enable nginx  # 开机自启动
  • 80?端口

源码安装

  • 对软件性能有非常高的要求,可对源码进行定制
  • 对软件打过特殊不定
  • 源码提供统一的安装方式,可用于多种平台

自己维护一个deb的包

反向代理和正向代理

  • 正向代理

    作为一个媒介将互联网上获取的资源返回给关联客户端,代理和客户端在一个局域网,对于服务端是透明的。

  • 反向代理

    根据客户端的请求,从后端的服务器上获取资源,然后再将这些资源返回给客户端,代理和服务器在一个局域网,对客户端是透明的。

所谓透明,比如反向代理:对于客户端而言,代理服务器和原始服务器是一个服务器

反向代理作用

  • 提高动态语言的I/O处理能力
  • 加密和SSL加速
  • 安全
  • 负载均衡

  • 缓存静态内容

  • 支持压缩

ngnix 配置

负载均衡算法

  • round-robin 轮询
  • least_conn 请求发送到请求连接少的服务器
  • ip_hash
  • hash

负载均衡支持的状态参数

gunicorn启动Flask应用


wsgi结合nginx部署web服务

Comments