nginx负载均衡实现
反向代理
代理这个词应该都有听过,要知道什么是反向代理,首先要知道什么是正向代理。
正向代理:比如我要访问谷歌,但是在大陆是无法访问的,这时候,有一台服务器A在国外,这个服务器A是可以访问谷歌的。为了访问谷歌,服务器A作为代理,帮我们去访问谷歌,将内容返回给我们,这就是正向代理
反向代理:我想要访问某个资源,因此去访问服务器A,然后服务器A就将资源给我们了,但是实际上,服务器A从哪里来的这个资源?它也是从其他某个服务器获取来的,但是对于我来说,我根本不知道服务器A去哪里帮我获取的这个资源,在我看来,这个资源就是服务器A本来就有的。这就是反向代理
反向代理与正向代理的区别:
- 正向代理,我们确切知道我们访问的是谁,借助于代理服务器去访问它
- 反向代理,我们只知道我们访问的是这个服务器,其实这个服务器还偷偷从其他服务器获取资源,但是我们完全不知道。
为了更好的理解这两种代理,用一个实际例子来说明:
正向代理:我知道有一个人叫小A,他手上有一些小电影资源,我想要,但是我不认识小A。正好隔壁老王认识小A,于是我找到老王,说,老王啊,帮我牵牵头,我想找小A买个小电影。于是老王就把小A带过来了,我就买到小电影了。这里的老王就是正向代理
反向代理:我想买一些小电影,于是找到了隔壁老王,说,老王啊,给我一点小电影。老王答应道:明天给你送过来。第二天,老王果然给我送来了小电影。其实,老王也是从别人那里拿的小电影,再转手给我。我还以为是老王自己的小电影给我了。这时候的老王就是反向代理。
负载均衡实现
原理:
实现:
在nginx安装目录下的etc下,创建一个配置文件
vim load_balance.conf
内容如下:
user nobody;
worker_processes 4;
events{
worker_connections 1024;
}
http{
upstream myapp1 {
server 14.152.71.1;
server 180.97.161.112;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
解析:
启动nginx的时候,通过-c参数来启用我们刚刚创建的配置文件,那么负载均衡就搞定了。
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/load_balance.conf
友情提示:我在做实验的时候,将服务器列表配置为百度,淘宝等ip,结果访问不了,最后用了一个我自己的阿里云服务器,可以正常访问。可能是那些网站做了一些安全措施吧。