nginx正向代理上网,反向代理负载均衡

一、什么是正向代理与反向代理?
1、正向代理
例子:客户端(PC)无法直接通过互联网或者内部局域网直接访问X资源(服务器),但是客户端能够直接访问一个代理服务器,而这个代理服务器能够访问到PC访问不了的X资源,
于是我们先在PC上配置代理服务器的地址,PC把请求发送给代理服务器,让代理服务器去访问X资源,代理访问了X资源返回给PC,从而解决了无法访问的问题。

正向代理:客户端将流量定向到第三方的软件,或连接到***,在访问服务器,而不是直接访问服务器。

流量流动方向:真正机器-->代理服务器。

正向代理的用途:
(1)访问原来无法访问的资源,如google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

nginx正向代理上网,反向代理负载均衡

2、反向代理
例子:客户端(PC)请求X资源,得到X资源的返回,从中PC并不能感觉到反向代理服务器的存在,反向代理服务器对PC来说是透明的,PC不需要任何的配置。

反向代理:服务器端使用反向代理服务器接受客户端访问,然后按规则将数据包定义到真正的服务器。

流量流动的方向:代理服务器-->真正机器

反向代理的作用:
(1)保证内网的安全
(2)负载均衡

nginx正向代理上网,反向代理负载均衡

二、正向代理配置(nginx做代理上网)
环境:linux centos环境 windows环境相同,nginx下载地址:http://nginx.org/en/download.html nginx/windows

1、配置nginx
shell>rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm centos6
shell>rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm centos7
shell>yum -y install nginx 安装nginx
shell>vim /etc/nginx/nginx.conf 添加二个server,增加二个域名解析

        ######################http代理####################
    server {
        listen 8088;
                 resolver 114.114.114.114;  #增加dns解析
        location / {
            proxy_pass http://$http_host$request_uri;
        }
    }
        ######################https代理###################
          server {
        listen 8089;
                 resolver 114.114.114.114;  #增加dns解析
        location / {
            proxy_pass https://$http_host$request_uri;
        }

shell>nginx -t 验证语法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

shell>systemctl restart nginx //centos7重启服务
shell>service nginx restart //centos6重启服务
shell>netstat -tunlp | grep 8088
tcp 0 0 0.0.0.0:8088 0.0.0.0: LISTEN 2441/nginx
shell>netstat -tunlp | grep 8089
tcp 0 0 0.0.0.0:8089 0.0.0.0:
LISTEN 2441/nginx

2、配置浏览器
打开IE->Internet选项->连接->局域网设置->高级->按下图设置

nginx正向代理上网,反向代理负载均衡

3、浏览器即可访问www.baidu.com

三、反向代理设置
总范例:backend服务器组显示了代理请求,三台服务器组成,其中两台运行同一应用程序的两个实例,另一台作为备份服务器,
nginx将http负载平衡应用于分发请求:
http{
upstream backend {
server x.x.x.x weight=1 max_fails=2 fail_timeout=5;
server x.x.x.x weight=1 max_fails=2 fail_timeout=5;
server x.x.x.x backup ;
}
server {
location / {
proxy_pass http://backend; #负载到后端服务器
}
}
}

猜你喜欢

转载自blog.51cto.com/7603402/2422469