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

Nginx 正向代理 & 反向代理

  • 前言
  • 一、什么是正向代理、反向代理 ?
    • 1、什么是代理服务器 ?
    • 2、为什么要使用代理服务器 ?
    • 3、正向代理 & 反向代理 ?
  • 二、Nginx 正向代理实战
  • 三、Nginx 反向代理实战

前言

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

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


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

Web集群案例实战 -- Nginx 正向代理 & 反向代理_第1张图片

1、什么是代理服务器 ?

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

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

提高访问速度

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

防火墙作用

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

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

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

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

正向代理
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第2张图片

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

反向代理
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第3张图片

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

二、Nginx 正向代理实战

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

环境准备

role host ip nginx-version OS
nginx proxy host node01 192.168.5.11、172.24.8.3 Nginx-1.18.0 Centos 7.8
nginx web server node02 192.168.5.12 Nginx-1.18.0 Centos 7.8
nginx client windows 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/
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第4张图片
windows 7 Ultimate. 配置web 正向代理

进入,internet 选项
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第5张图片
单机,局域网设置
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第6张图片
设置代理服务器地址、端口,单机确定
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第7张图片
测试

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

windows 7 Ultimate. 访问node02 web 服务
成功访问!!!
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第8张图片
windows 7 Ultimate. 访问百度 首页站点
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第9张图片
成功访问!!!

三、Nginx 反向代理实战

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

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

环境准备

role host ip nginx-version OS
nginx Load balancing host node01 192.168.5.11、172.24.8.3 Nginx-1.18.0 Centos 7.8
nginx web server 01 node02 172.24.8.5 Nginx-1.18.0 Centos 7.8
nginx web server 02 node03 172.24.8.6 Nginx-1.18.0 Centos 7.8
nginx client windows 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解析
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第10张图片
windows 7 Ultimate. 测试

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

浏览器访问:
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第11张图片

Web集群案例实战 -- Nginx 正向代理 & 反向代理_第12张图片
node01通过IP访问web服务
Web集群案例实战 -- Nginx 正向代理 & 反向代理_第13张图片

你可能感兴趣的:(Web,Server,Clusters,Web集群,Nginx,正向代理,反向代理,运维)