Nginx 反向代理和负载均衡
反向代理
个人理解:反向代理的实际功能就是将监听到的指定端口和请求服务名,再通过location root 进行替换转向。
另一种说明:当浏览器发送请求时,nginx内部映射到具体的文件夹下.给用户予以响应.这样的方式成为反向代理。
server {
#监听端口
listen 80;
server_name image.jt.com;
#转向路径
location / {
root D:\\jtphoto;
}
}
说明:客户端发起了http://image.jt.com/images/.......请求,由Nginx监听到image.jt.com后并设置了location root为D://jtphoto时Nginx就会将 D://jtphoto 直接替换image.jt.com ,并会自动拼接路径,从而根据路径访问到指定的服务器。
负载均衡
当客户端发起多个请求时最终只会访问一台终端服务器,若有多台服务器时通过Nginx将请求进行分发转向到不同的服务器进行请求处理。
实现负载均衡有三种方式:
1.轮询方式:(Nginx默认方式)
对多台服务器进行循环访问。
如有A、B、C三台服务器这时Nginx会将发来的请求进行分发,比如第一个请求先分发给A,再来一个请求分发给B,再来一个请求分发给C ... 如此循环分发下去,从而降低降每台服务器的访问压力到达均衡。
2.权重方式:(对服务器配置weight 值)
对多台服务器进行权重划分。意思就是将多台服务器进行主次访问顺序,将性能好的服务器设置成主要服务器,其它服务器为辅。
weight 的值越高的服务器则被访问的几率就越高。
upstream jt{
server 127.0.0.1:8091 weight=7;
server 127.0.0.1:8092 weight=3;
server 127.0.0.1:8093 down;
}
3.IPhash:
根据不同人的访问IP进行服务器分配,Session黏着问题.
Nginx.conf配置反向代理和负载均衡:
1 http { 2 include mime.types; 3 default_type application/octet-stream; 4 5 server { 6 #监听端口 7 listen 80; 8 server_name localhost; 9 10 #转向路径 11 location / { 12 #默认访问路径 13 root html; 14 index index.html index.htm; 15 } 16 17 error_page 500 502 503 504 /50x.html; 18 location = /50x.html { 19 root html; 20 } 21 22 23 } 24 25 26 #配置多台Tomcat服务器,默认采用轮询方式 27 #weight 的值为分配权重值(即访问的概率值)down:表示停用当前服务器 28 upstream jt{ 29 server 127.0.0.1:8091 weight=7; 30 server 127.0.0.1:8092 weight=3; 31 server 127.0.0.1:8093 down; 32 33 } 34 35 36 #配置图片服务器 37 server { 38 #监听端口 39 listen 80; 40 server_name image.jt.com; 41 42 #防止host请求头丢失 43 proxy_set_header X-Forwarded-Host $host; 44 proxy_set_header X-Forwarded-Server $host; 45 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 46 47 #转向路径 48 location / { 49 root D:\\jtphoto; 50 } 51 } 52 53 #配置后台访问路径 54 server { 55 #监听端口 56 listen 80; 57 server_name manage.jt.com; 58 59 #防止host请求头丢失 60 proxy_set_header X-Forwarded-Host $host; 61 proxy_set_header X-Forwarded-Server $host; 62 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 63 64 #转向路径 65 location / { 66 #jt代表负载均衡的名称 67 proxy_pass http://jt; 68 } 69 } 70 71 72 }