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服务