nginx反向代理、负载均衡

什么叫反向代理?

 A用户--> B(在和C同一个机房,并且有公网)--> C(不带公网的机器)

什么场景下会用到反向代理?

1.访问不带公网的内网机器

2.解决两台之间通信有障碍的问题

编辑虚拟机添加网络适配器,仅主机模式,开机增加网卡

 

 进入网卡配文件

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-ens33 ifcfg-ens37
# vim ifcfg-ens37

 

重启网络服务

# systemctl restart network

Windows可以ping通

 

 

 场景:

1.A B两台机器,其中A只有内网,B有内网和外网

2.A的内网ip 192.168.109.133 B的内网ip是192.168.109.131 外网ip是192.168.239.128

3.C为客户端,C只能访问B的外网,不能访问A或者B的内网

需求:

1.C要访问到A的内网上的网站

在B机器配置,前提B机器上要有nginx服务:

server
{
    listen 80;
    server_name bbs.centos.com;

    location /
    {
        proxy_pass http://192.168.109.133;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

重置配置

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload

 

添加80端口

# firewall-cmd --add-port=80/tcp --permanent
# firewall-cmd --reload

添加Windows-hosts

因为B上没有网站的,反向代理到A机器的网站

 

 

 

2.0 nginx负载均衡

 什么是负载均衡?

负载均衡就是,把请求均衡地分发到后端的各个机器上面.

比如,A B C D 四台web服务器,现在E要访问者四台服务器,F为nginx反向代理服务器,可以让F把E的请求均衡地发送到A B C D 4台服务器上。

用的是ip_hash配置:

upstream apelearn
{
    ip_hash;
    server 115.159.51.96:80;
    server 47.104.7.242:80;
}
server
{
    listen 80;
    server_name www.apelearn.com;
    location /
    {
        proxy_pass      http://apelearn;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

到Windows去绑定hosts

 

 

查看语法,重载配置

# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload

测试访问:

 

posted @ 2019-10-17 19:42  烟头001  阅读(299)  评论(0编辑  收藏  举报