1、正向代理
正向代理就是我们平时说的代理上网,局域网中的用户通过网关做代理访问外部的网络。
2、反向代理
在计算机网络中,反向代理是一种代理服务器,代表客户端从一个或多个服务器检索资源。然后将这些资源返回给客户机,就像它们源自Web服务器本身一样。与正向代理相反,正向代理是与其关联的客户端联系任何服务器的中介,反向代理是任何客户端与其关联的服务器进行联系的中介。
反向代理案例1:
nginx反向代理的指令不需要新增额外的模块,默认自带proxy_pass指令,只需要修改配置文件就可以实现反向代理。当pc机发送请求172.18.1.26:9011的时候,nginx服务器给转发到172.18.1.22:9100es的集群上去了。
反向代理案例2:
一个nginx服务器,两台httpd服务:
10.10.252.211 nginx服务
10.10.252.212 httpd服务
10.10.252.213 httpd服务
nginx的安装和httpd服务的安装这里就不再描述,我们看一下nginx的配置文件和httpd服务web页面显示。
站点显示的是wyl02目录
站点显示wyl03文件
nginx的配置文件内容:
upstream httpdservers{
server 10.10.252.212; #端口是80 所以这里不需要写
server 10.10.252.213;
}
server {
listen 8080;
server_name www.a.com;
location / {
proxy_pass http://httpdservers;
index index.html index.htm;
}
}
不要忘了在自己的本地pc机上配置wyl01机器的ip和域名 不然访问www.a.com是有问题的。重启nginx,我们在网页上输入www.a.com会看到第一次出现wyl02目录的信息,第二次出现wyl03文件的页面。依次出现,如下图所示。
3、负载均衡
网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时候来自web前端的压力,也能让人十分头痛。怎样将同一个域名的访问分散到两台或更多的机器上呢?这其实就是另一种负载均衡了,nginx自身就可以做到,只需要做个简单的配置就行。
只需要在upstream的server后面加一个weight即可代表权重,权重越高,分配的数量就越多,默认权重就是1.
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
upstream httpdservers{
server 10.10.252.212 weight=5;
server 10.10.252.213;
}
访问http://www.a.com:8080/次数越多,两者访问的比列是5:1。