nginx
介绍
nginx
是一款使用C语言编写的高性能的HTTP和反向代理服务器。优点是占用内存小,并发能力强。
nginx
下载、安装
输入以下代码下载安装包
1 | wget install http://nginx.org/download/nginx-1.22.1.tar.gz |
解压压缩包
1 | tar -zxvf nginx-1.22.1.tar.gz |
进入目录,赋予执行权限
1 | cd nginx-1.22.1 && chmod +x configure |
安装nginx
所需要的一些环境
1 | c编译器 |
开始安装
1 | 开始安装 |
在本地输入IP地址+端口号(默认为80)
看是否可以进入nginx
主界面,如出现下图内容则说明配置成功。
nginx
简单配置
反向代理
1 | server { |
以上为nginx.conf
的配置文件,作用为将服务器能够访问的http://39.101.66.202:1080
资源,反向代理给域名file.com
端口为80
。
负载均衡
轮询
1 | upstream test{ |
该配置的效果为,当用户访问8088
端口时,nginx
会将请求按照默认的轮询方式分配到80
和9100
端口上,进行转发跳转。
权重
1 | upstream test{ |
该配置的效果为,当用户访问8088
端口时,会按照权重分配到80
和9100
端口。如果有5
次请求,那么80
端口会分配1
次,9100
端口会分配4
次。
IP
散列
1 | upstream test{ |
上述weight权重
模式方式存在一个问题,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
采用ip_hash
指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip
的hash
结果分配,这样每个访客固定访问一个后端服务器,可以解决session
不能跨服务器的问题。