Web集群案例实战 -- Nginx 正向代理 & 反向代理

前言

本环境是基于 Centos 7.8 系统构建Nginx学习环境
具体构建,请参考 Nginx-1.18.0 环境部署

Nginx 作为一款非常优秀的web服务器。不仅仅拥有web服务的功能,它还提供强大的反向代理、负载均衡,已经成为web集群,高可用性能的重要解决方案之一。接下来,我将详细介绍Nginx的正向、反向代理。


一、什么是正向代理、反向代理 ?

在这里插入图片描述

1、什么是代理服务器 ?

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机

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

提高访问速度

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

防火墙作用

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

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

  • 互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点

3、正向代理 & 反向代理 ?

正向代理
在这里插入图片描述

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

反向代理
在这里插入图片描述

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

二、Nginx 正向代理实战

局域网客户端通过nginx正向代理访问互联网

环境准备

rolehostipnginx-versionOS
nginx proxy hostnode01192.168.5.11、172.24.8.3Nginx-1.18.0Centos 7.8
nginx web servernode02192.168.5.12Nginx-1.18.0Centos 7.8
nginx clientwindows 7 Ultimate.172.24.8.4----windows 7 Ultimate.

node01 配置nginx代理服务

充当web代理服务器

[root@node01 ~]# vim /etc/nginx/conf.d/vhost.conf
server{
        listen 8888;
        resolver 223.5.5.5;
        location / {
            proxy_pass http://$http_host$request_uri;
        }
}
[root@node01 ~]# systemctl restart nginx

node01 开启路由转发

[root@node01 ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@node01 ~]# sysctl -p
net.ipv4.ip_forward = 1

node02 配置nginx web服务

充当互联网web应用,提供web访问

[root@node02 ~]# vim /usr/local/nginx/conf/vhost.conf 
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

[root@node02 ~]# mkdir /usr/local/nginx/html/Internet_access_page/
[root@node02 ~]# echo 'Congratulations, access the Internet!' > /usr/local/nginx/html/Internet_access_page/index.html 

[root@node02 ~]# systemctl restart nginx

命令行本地访问:
在这里插入图片描述
浏览器本地访问:http://192.168.5.12/Internet_access_page/
在这里插入图片描述
windows 7 Ultimate. 配置web 正向代理

进入,internet 选项
在这里插入图片描述
单机,局域网设置
在这里插入图片描述
设置代理服务器地址、端口,单机确定
在这里插入图片描述
测试

windows 7 Ultimate. 充当公司内网PC访问互联网web服务器

windows 7 Ultimate. 访问node02 web 服务
成功访问!!!
在这里插入图片描述
windows 7 Ultimate. 访问百度 首页站点
在这里插入图片描述
成功访问!!!

三、Nginx 反向代理实战

互联网客户端通过nginx反向代理访问公司内部服务器

局域网客户端通过nginx正向代理访问互联网

环境准备

rolehostipnginx-versionOS
nginx Load balancing hostnode01192.168.5.11、172.24.8.3Nginx-1.18.0Centos 7.8
nginx web server 01node02172.24.8.5Nginx-1.18.0Centos 7.8
nginx web server 02node03172.24.8.6Nginx-1.18.0Centos 7.8
nginx clientwindows 7 Ultimate.192.168.5.7----windows 7 Ultimate.

node02、node03 配置nginx代理服务

充当web内网服务器

--node02
[root@node02 ~]# mkdir /usr/share/nginx/html/{bbs,blog}
[root@node02 ~]# echo "`hostname -I` 'bbs web page...'" > /usr/share/nginx/html/bbs/index.html
[root@node02 ~]# echo "`hostname -I` 'blog web page...'" > /usr/share/nginx/html/blog/index.html
[root@node02 ~]# vim /etc/nginx/conf.d/vhost.conf
    server {
        listen       80;
        server_name  bbs.yunjisuan.com;

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

    server {
        listen       80;
        server_name  blog.yunjisuan.com;

        location /bbs {
            root   html;
            index  index.html index.htm;
        }
}
[root@node02 ~]# systemctl restart nginx

--node03
[root@node03 ~]# mkdir /usr/share/nginx/html/{bbs,blog}
[root@node03 ~]# echo "`hostname -I` 'bbs web page...'" > /usr/share/nginx/html/bbs/index.html
[root@node03 ~]# echo "`hostname -I` 'blog web page...'" > /usr/share/nginx/html/blog/index.html
[root@node03 ~]# vim /etc/nginx/conf.d/vhost.conf
    server {
        listen       80;
        server_name  bbs.yunjisuan.com;

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

    server {
        listen       80;
        server_name  blog.yunjisuan.com;

        location /bbs {
            root   html;
            index  index.html index.htm;
        }
}
[root@node03 ~]# systemctl restart nginx

node01 开启路由转发

[root@node01 ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@node01 ~]# sysctl -p
net.ipv4.ip_forward = 1

node01 配置反正解析

location /bbs {
    proxy_pass http://bbs.123.com/bbs/;
}
location /blog {
    proxy_pass http://bbs.123.com/blog/;
}
[root@node01 ~]# systemctl restart nginx

node01 hosts解析

172.24.8.5 bbs.yunjisuan.com blog.yunjisuan.com

windows 7 Ultimate. hosts解析
在这里插入图片描述
windows 7 Ultimate. 测试

windows 7 Ultimate. 模拟公网用户,访问公司内网web服务器

浏览器访问:
在这里插入图片描述

在这里插入图片描述
node01通过IP访问web服务
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值