定义:高性能HTTP和反向代理web服务器
1 主要特性
- 反向代理
- 负载均衡
- 动静分离
1.1 反向代理
首先明白什么是正向代理:在客户端配置代理服务器,通过代理服务器访问Internet。
而反向代理无须客户端配置,通过反向代理服务器转发不同服务器,而反向代理服务器和目标服务器对外合并为一个服务器,向外暴露反向代理服务器,隐藏目标服务器
1.2 负载均衡
增加服务器的重量,将请求平均分配给不同的服务器
1.3 动静分离
把静态资源和动态资源分开部署
2 配置信息
nginx配置文件组成情况:全局、events、Http
全局:主要设置整体运行的指令
events:主要影响Nginx与用户的网络连接
Http:它是交互最频繁的部分,其中含有代理、缓存,其中也分为 http、server
3 反向代理具体实例
如果你想用自定义的域名来运行某个服务器,首先第一步你需要在本地的hosts文件添加域名和本地ip地址对应关系。比如: IP地址 :域名
nginx请求转发的配置如下:
- 将server模块中把server_name改为本地ip
- 在location下添加:proxy_pass 目标服务器
使用nginx反向代理,根据访问路径不同,跳转不同的服务器
nginx具体配置如下:
- 添加server,监听端口(用哪个端口访问就监听哪个端口)
- 将server_name 绑定ip地址
- location部分写如下配置 :location ~ /路由1/ { proxy_pass 访问的目标ip加端口号 }
location ~ /路由2/ { proxy_pass 访问的目标ip加端口号 }
4 负载均衡具体配置
我么很清楚负载均衡是什么意思,所以接下来我们来学会怎么配置
nginx的具体配置如下:
- http中添加 upstream myserver(可自定义)
upstream myserver{
ip_hash;
server 服务器ip地址:端口号 weight=1
server 服务器ip地址:端口号 weight=1
}
- server中添加location
location{ proxy_pass http://myserver; proxy_connect_timeout 10; }
同时,注意其中server_name种的IP地址与myserver中的IP地址是同一个
那么,nginx怎么分配服务器了,见小节4.1
4.1 nginx分配服务器
- 轮询:按时间顺序进行分配,如果后端服务器down了,能自动剔除。
- weight:权重越大,就运行
- ip_hash:每个客户端固定访问一个终端,即如果这次访问的服务器是a,那么就会一直访问a
- fair:根据响应时间来分配