反向代理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
简单的一个反向代理就是ngnix接受网络请求,Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。
例如,ngnix配置文件:
把图片重写到 8080端口(既然能写到8080端口,就意味着可以写到其他独立服务器上)
server {
location ~ \.(jpg|jpeg|png|gif)$ {
proxy_pass http://192.168.1.204:8080;
expires 1d;
}
假如后端连接着几台服务器呢,这个时候就涉及负载均衡了
负载均衡:
upstream server1 {
server 192.168.3.43:8081;
server 192.168.3.42:8082;
#upstream 每个设备的状态:
#down 表示单前的server暂时不参与负载
#weight 默认为1.weight越大,负载的权重就越大。
#max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错##误
#fail_timeout:max_fails 次失败后,暂停的时间。
#backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
}
server {
listen 80;
#...
location / {
proxy_pass http://server1;
index index.html index.htm;
}
}