公司一般主要以反向代理为主(最典型的Nginx负载均衡)
一、正向代理
客户端Client不直接访问服务器Server,通过代理服务器Proxy访问
正向代理是客户主动使用的代理
正向代理:最典型的案例就是通过爬虫爬取网络数据,如果请求次数过多该网站会屏蔽你的IP(封禁一段时间在访问、无意义的访问,给该网站没有任何好处),因为正常的用户不会频繁访问的,这个时候就需要使用正向代理了来伪装自己的IP,请求的是随机的代理IP,实际得到结果的是本机IP,这样就不会被封闭了
优点:通过代理的中转,客户端对服务器隐藏了IP,增加了安全性,某些被禁止访问的IP通过代理也可以访问了
二、反向代理
服务端Server不直接响应客户端Client,通过代理服务器Proxy转发反向代理是服务器主动使用的代理
优点: 服务器可以隐藏真实IP,选择复制策略,减小服务器压力
Nginx负载均衡
- 用户发送请求服务器(访问的是反向代理服务器)
- 反向代理服务器发送请求到真正的服务器
- 真正的服务器(通过DB数据库)将数据返回给代理服务器
- 反向代理服务器再将数据返回给用户
三、反向代理案例
- 进入到nginx配置目录并编辑配置文件
cd /usr/local/nginx/conf
vi nginx.conf
server添加一个服务器进行负载均衡 :
upstream dsshop {
server 127.0.0.1:8083 weight=1;
server 192.168.48.137:8083 weight=1;
#server 192.168.10.121:3333 backup; #热备
}
Tips:
server 127.0.0.1:8083 weight=1;
server 192.168.48.137:8083 weight=1;
备注:127.0.0.1:8083 本机服务器,可以更改为192.168.48.135:8083 192.168.48.137:8083是另外一台服务器
weight=1 权重分配,设置一致:表示目前分配的都一样,如果访问网页2次,两台服务器各请求1次
- 启动当前服务器的nginx和tomcat服务
./d1-start-DsShop-tomcat.sh
./a1-start-Nginx.sh
-
没启动nginx服务之前在谷歌浏览器需要加端口号访问:http://192.168.48.135:8083/index.htm
启动了nginx服务后就不需要加端口号了(走nginx服务,因为nginx端口80,http请求可以默认不写): http://192.168.48.135/index.htm
-
查看tomcat下项目路径,一般是conf文件下面
cd /usr/local/tomcat7-8083/conf
cat server.xml
下图为例:这里就是项目存放路径地址
4. 进入到此目录下,在当前目录创建一个文件
cd /usr/local/web/WebRoot
vi 1.html
内容如下
<html>title1</html>
- 另外服务器配置一样
cd /usr/local/web/WebRoot
vi 1.html
内容如下
<html>title2</html>
进入启动文件目录,启动项目,并查看端口8083
cd /data/startup/
./d1-start-DsShop-tomcat.sh
netstat -tunlp
- 在浏览器访问,刷新一次就变一次,因为权重一样,
Tips:有的服务器配置比较低,权重可以更改低一点,服务器配置比较高的,权重可以高一点
- 修改权重(如果有3次请求,1服务器被请求1次,2服务器被请求2次)
cd /usr/local/nginx/conf
vi nginx.conf
-
重新加载nginx文件或者重启nginx服务
重新加载:nginx -s reload
重启服务(进入到指定目录下):./a1-start-Nginx.sh -
请求查看, 返回结果:1,2,2