• 利用Nginx实现反向代理web服务器


    一、反向代理概述

    通俗的说就是多个客户端给服务器发送的请求,假设利用Nginx作为反向代理,Nginx 服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。

    此时请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx 扮演的就是一个反向代理角色。客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

    反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息

    下面就以Nginx作为反向代理写一下实验过程。

     

     

    二、实验设备

    实验最后在物理机上模拟客户端访问代理服务器(hbza)的不同端口,通过反向代理的配置规则,进一步访问到实际服务器(hbzb)的不同端口上。

    hbza虚拟机:代理服务器/192.168.5.100/Nginx/8010/8020

    hbzb虚拟机:实际服务器/192.168.5.200/Apache/666/888

     

    三、实验步骤

    1.在服务器上(hbzb)部署测试网页

     

      第一步:安装Apache

      

      第二步:在/var/www目录下创建两个html文件作为两个端口访问的数据

    第一个:

    第二个:

     

    第三步:修改apache的配置文件

    vi /etc/httpd/conf/httpd.conf

    首先加上访问的端口:

    在文件最后加上访问两个端口的目录:

    然后wq保存退出

     

    第四步:重新Apache服务:systemctl restart httpd.service

     

    第五步:在浏览器中测试:

    服务器端的配置完成

     

    2. 用Nginx配置反向代理(hbza)

     

    第一步:安装Nginx服务

    yum install nginx -y

     

        第二步:修改Nginx配置文件配置反向代理

        vi /etc/nginx/nginx.conf

        在http中添加两个server:

    用hbza的8010端口代理hbzb的666端口

    用hbza的8020端口代理hbzb的888端口

    wq退出

     

    第三步:重启Nginx

    systemctl restart nginx.service

     

     

    3.主机作为客户端访问代理的两个端口

     

    4.特别注意:以上实验的hbza也就是nginx代理服务器关闭了selinux,否则nginx转发会出现错误。

    关闭selinux(临时):setsebool 0

    或者修改配置文件重启:vi /etc/selinux/config

     

     

     

     

     

    四、结论

    最后客户端通过访问代理服务器,代理服务器配置不同的策略访问到不同的端口(实际应该是不同的服务器)实现反向代理。

    反向代理的作用:

    保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。负载均衡,通过反向代理服务器来优化网站的负载。

  • 相关阅读:
    Java沉思录之重识String
    【python】 爬虫-爬取新闻
    【大数据】水质分析————(数据预处理)对水质图片的处理
    神经网络 鸢尾花数集预测
    【python 基础】词云
    【数据结构】字符串匹配
    【算法】 分治
    【数据结构】队列
    【数据结构】栈 的 顺序表示
    【数据结构】 线性表 的 链式存储结构
  • 原文地址:https://www.cnblogs.com/hzk001/p/12709454.html
Copyright © 2020-2023  润新知