Nginx反向代理


Nginx反向代理

1.什么是代理服务器

  在客户端访问某个目的主机的时候,不会将请求直接发送给目标网站服务器,而是先通过反向代理服务器,代理服务器接收客户请求后,再向目的主机发送,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。 

 

2.为什么要使用代理服务器 

  1)提高访问速度 

    由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。 
  2)防火墙作用 

    由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息,在站点上屏蔽所有,只允许代理服务器访问

  3)通过代理服务器访问不能访问的目标站点 

    互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的FQ浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。 

 

3.正向代理和反向代理

  1)正向代理

    正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。 

  2)反向代理

    反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。 

4.配置nginx反向代理

  1)安装nginx

    1.反向代理服务器:192.168.1.1

    2.http服务器:192.168.1.2

    安装>>>http://www.cnblogs.com/wazy/p/8108824.html

  2)配置反向代理服务器

    

#vim /etc/nginx/nginx.conf

upstream server1 {
    server 192.168.1.2:8080;            #http服务器地址
    }
upstream server2 {
    server 192.168.1.2:8081;        #http服务器地址
    }
server {
        listen       80;
        server_name  8080.com;          #域名,可在本机hosts文件配置一下

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://server1;    
            index  index.html index.htm;
        }     
    }
server {
        listen       80;
        server_name  8081.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://server2;
            index  index.html index.htm;
        }        
    }

  

  3)配置http服务器

  

mkdir  /var/www/html/1/          #创建两个网站根目录
mkdir  /var/www/html/2/
echo "8080.com" > /var/www/html/1/index.html 
echo "8081.com" > /var/www/html/2/index.html   #为两个网站创建两个主页面,用于测试

vim /etc/nginx/nginx.conf


server {
                listen 8080;
                server_name localhost;
                location / {
                        root /var/www/html/1/;
                        index index.html index.htm;
                }
        }
        server {
                listen 8081;
                server_name localhost;
                location / {
                        root /var/www/html/2/;
                        index index.html index.htm;
                }
        }

    

  

  4)防火墙设置

 

#反向代理服务器
systemctl stop firewalld

#http服务器
firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.1.1 port port=8080 protocol=tcp accept'
firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.1.1 port port=8081 protocol=tcp accept'

  

  5)测试

    现在访问8080.com和8081.com可以成功访问,而直接访问192.168.1.2:8080和192.168.1.2:8081则失败

 

posted @ 2017-12-28 17:03  qwerdf六连  阅读(248)  评论(0编辑  收藏  举报