什么是代理呢?比如我们现在有一个需求,国内现在已经把谷歌禁掉了,访问不了谷歌,怎么办呢?美国可以访问,香港可以访问,那我们现在就可以做一个代理,我们可以实现通过一个代理去访问百度,去访问谷歌,去访问任何一个网站。
比较典型的一个例子,在新疆那边,是访问不到百度网盘的,那这个时候我们就可以用一个代理去实现。代理如何去配置?
## 编写代理配置文件
[root@wy ~]# cd /usr/local/nginx/conf/vhosts/
[root@wy vhosts]# vim proxy.conf
server {
listen 80;
server_name www.baidu.com;
location / { # 百度的ip
proxy_pass http://119.75.217.109/;
# proxy_set_header Host $host;
}
}
解释说明:
以百度为例,先在本地上ping一下百度,看一下ip,然后填写在proxy_pass
## 检查并重新加载
[root@wy vhosts]# /usr/local/nginx/sbin/nginx -t
[root@wy vhosts]# /usr/local/nginx/sbin/nginx -s reload
## 测试
[root@wy vhosts]# curl -x127.0.0.1:80 www.baidu.com
解释说明:
把百度的ip指向咱们本机来,然后去访问百度
nginx也可以实现多台机器,也就是你指定后端的ip可以是多个;这种多个情况下,完全可以实现负载均衡那如何配置负载均衡,多个机器去访问百度呢?
## 首先查看百度解析到了哪里
[root@wy vhosts]# dig www.baidu.com
;; ANSWER SECTION:
www.baidu.com. 5 IN CNAME www.a.shifen.com.
www.a.shifen.com. 5 IN A 119.75.218.70
www.a.shifen.com. 5 IN A 119.75.217.109
解释说明:
使用dig的目的,是找到百度其他的地址,除了上面配置的119.75.217.109,还有一个119.75.218.70
## 多个ip去访问,去代理
[root@wy vhosts]# vim proxy.conf
upstream bbb{
server 119.75.218.70:80 weight=100;
server 119.75.217.109;
}
server {
listen 80;
server_name www.baidu.com;
location / {
proxy_pass http://bbb/;
proxy_set_header Host $host;
}
}
解释说明:
server 119.75.218.70:80 weight=100; 端口可写可不写;weight 权重;在这可写可不写
配置多个ip时,要加上proxy_set_header Host $host; 否则会 502
proxy_pass 写 upstream自定义的名字
## 检查并重新加载
[root@wy vhosts]# /usr/local/nginx/sbin/nginx -t
[root@wy vhosts]# /usr/local/nginx/sbin/nginx -s reload
## 测试
[root@wy vhosts]# curl -x127.0.0.1:80 www.baidu.com
本文出自 “linux” 博客,转载请与作者联系!
原文:http://warm51fun.blog.51cto.com/3884274/1888127