【五、反向代理及其相关配置】

文章目录

  • 反向代理及其相关配置
    • 1.反向代理
    • 2.正向代理
    • 3.网关
    • 4. Nginx做反向代理的缺点
    • 5.反向代理配置
      • 1.跳转到外网网站上
      • 2.跳转到本机服务器上

反向代理及其相关配置

1.反向代理

服务器提供的代理为反向代理

原理:当用户向服务器请求资源时,他会 首先进过Nginx,由Nginx再向服务器请求资源,得到资源后,服务器首先会把资源发送到Nginx上,然后由Nginx在发送给用户,此时Nginx就是反向代理服务器。

【五、反向代理及其相关配置】_第1张图片

2.正向代理

用户提供的代理为正向代理(socket代理,http代理等)

【五、反向代理及其相关配置】_第2张图片

3.网关

正向代理服务器、反向代理服务器与网关本质上是一样的。

访问网络的入口就是网关,例如家庭中的路由器就相当于一个网关,我在家用手机,平板等上网,访问资源等都会打到网关上,在传输出去。通俗一点网关就相当于学校的大门,你想出去,必须经过大门。

网关特点:中转。

用户访问资源,都需要打进网关,当通过网关将请求发送到服务器,服务器又会把信息,传到网关 ,最后传递给用户。

问题:当用户请求多的,流量大的时候,如果网关上限带宽不大的时候,就会发生阻塞。

解决方法:只能加大代理服务器的带宽。

4. Nginx做反向代理的缺点

因为nginx代理的带宽,决定了用户集群的网络带宽,在比较高的io操作,nginx做反向代理,效果不明显。

解决方案:当用户请求服务器时,必须经过nginx,但是当服务器返回数据是,直接打到用户,不在经过nginx(DR模型

【五、反向代理及其相关配置】_第3张图片

5.反向代理配置

1.跳转到外网网站上

用到proxy_pass 关键字设置

proxy_pass后面有俩种配置方法

  1. 可以是代理的地址,这个地址可以是一台主机或者一个网址

  2. 可以把它配成一组服务器(下面先配一个服务器)

【五、反向代理及其相关配置】_第4张图片

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost; 

        location / {
             proxy_pass   http://www.baidu.com;             //只有这个地方改变了
            #root   html;
            #index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

运行结果:

【五、反向代理及其相关配置】_第5张图片

2.跳转到本机服务器上

设置俩台虚拟主机:这里一个ip:192.168.56.136,另一个是192.168.56.137

【五、反向代理及其相关配置】_第6张图片

我用的是桥接的方法,直接nat方法和仅主机方法都试过了,但是俩台虚拟机都ping不通。

注意

  • 在代理到网站的时候,虚拟机需要Ping通外网才可以

  • 在代理本机服务器时,俩台虚拟机需要ping通才可以。(你想代理哪个服务器,你就需要和谁ping通)

修改网络配置命令

vi /etc/sysconfig/network-scripts/ifcfg-ens33

CentOS7配置情况:(ip:192.168.56.136)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="DHCP"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="b73ab354-05d7-4492-87df-d537a32120bd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.56.136
NETMASK=255.255.255.0
GETWAY=192.168.56.2
DNS1=8.8.8.8

Nginx配置情况:(ip:192.168.56.137)

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="DHCP"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="b73ab354-05d7-4492-87df-d537a32120bd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.56.137
NETMASK=255.255.255.0
GETWAY=192.168.56.2
DNS=8.8.8.8
         

配置centos7中的nginx.conf文件文件只修改了一个地方

worker_processes  1;




events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;


        location / {
            proxy_pass http://192.168.56.137;         //只有这一个地方变了
            #root   html;
            #index  index.html index.htm;
        }

       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

配置nginx2中的nginx.conf文件文件没有修改,保持默认情况

worker_processes  1;


events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;


    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;


        location / {
            
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

      
    }


}

为了区分默认的root下的html,将192.168.56.137下面的html文件改为

【五、反向代理及其相关配置】_第7张图片

【五、反向代理及其相关配置】_第8张图片

DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!title>
head>
<body>
<body style="background-color: pink">
<h1>192.168.56.137h1>
body>
html>

运行结果:(通过在网址中输入192.168.56.136,由于设置了proxy_pass他会跳转到192.168.56.137,然后显示137下面的html文件)

【五、反向代理及其相关配置】_第9张图片

【五、反向代理及其相关配置】_第10张图片

目前只是代理一台服务器,可以代理到多台服务器上

你可能感兴趣的:(Nginx,nginx,网络,服务器)