【运维工程师学习八】代理及安装配置Nginx反向代理

【运维工程师学习八】代理

    • 正向代理
    • 一、使用正向代理的主要作用有:
    • 二、反向代理
    • 三、使用反向代理的主要作用有:
    • 四、透明代理
    • 五、各种代理的主要区别
    • 六、Nginx的安装
    • 七、了解nginx的文件位置
    • 八、了解nginx程序的命令行参数
    • 九、开启nginx反向代理
    • 十、解读nginx主配置文件
    • 十一、总结

代理的模式有三种:正向代理、反向代理、透明代理。在介绍反向代理部署之前先看一下各种模式代理的应用场景。

正向代理

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲(缓存)特性减少网络使用率。
在这里插入图片描述
从图中我们可以看出,所谓的正向代理就是代理服务器替代访问方【用户】去访问目标服务器【内容服务器】

一、使用正向代理的主要作用有:

1、访问本无法访问的服务器,你懂的
2、加速访问服务器,客户端到代理服务器快,但到内容服务器慢,而代理服务器到内容服务器快,则实现了加速
3、Cache作用,缓存的意思,代理服务器可以开启缓存,这样客户端下次再次访问可以加速
4、客户端访问授权,可以实施对客户端允许或禁止访问指定服务器的控制
5、隐藏访问者的行踪,内容服务器并不知道访问自己的实际用户,因为代理服务器代替用户去直接与内容服务器进行交互

二、反向代理

反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
CDN就是利用反向代理模式,但CDN是一个十分庞大的系统,除了反向代理还需要搭配智能DNS等,本例无意讨论CDN架构,请自行了解。

在这里插入图片描述
正反向代理的程序很多,开源软件中最流行的就是squid。反向代理中最主要的实践就是WEB服务,近些年来最火的就是Nginx了。

除了squid,nginx还有很多能实现反向代理的程序。

三、使用反向代理的主要作用有:

1、保护和隐藏原始内容服务器,像上页图中,防火墙只允许代理服务器访问真正的内容服务器
2、负载均衡,当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问内容服务器的时候,让不同的代理服务器去应答不同的用户,然后发送不同用户需要的内容

四、透明代理

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(请求报文),并会传送真实IP,多用于路由器的NAT转发中。透明代理实践的例子就是时下很多公司使用的行为管理软件。
在这里插入图片描述
用户A和用户B并不知道行为管理设备充当透明代理行为,当用户A或用户B向服务器A或服务器B提交请求的时候,透明代理设备根据自身策略拦截并修改用户A或B的报文,并作为实际的请求方,向服务器A或B发送请求,当接收信息回传,透明代理再根据自身的设置把允许的报文发回至用户A或B,如上图,如果透明代理设置不允许访问服务器B,那么用户A或者用户B就不会得到服务器B的数据。

五、各种代理的主要区别

在这里插入图片描述
通过前面的介绍、对比,我们得知正向代理、透明代理多数用于企业内部网络,而只有反向代理多用于WEB服务,因此本节将介绍利用nginx程序部署反向代理。

六、Nginx的安装

本例演示中不使用编译安装,将使用epel仓库的编译包进行安装。
演示系统约定:
OS:CentOS7 minimal
Selinux: disable
Firewall: disable
IP:192.168.1.5

1、安装epel源及ntp以保证时间准确

yum install –y epel-release ntp
yum makecache
ntpdate pool.ntp.org

在 centos 8 中, ntp 已经被 chrony 代替。
之前的版本:

yum install -y ntp

centos8:

yum install chrony

修改时区:

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

2、安装nginx

yum install –y nginx

3、启动nginx

systemctl start nginx

在浏览器访问192.168.1.5如右图,表示安装成功。
在这里插入图片描述

七、了解nginx的文件位置

Nginx配置文件全部位于/etc/nginx下

/etc/nginx/               	   # 配置文件目录
nginx.conf	                   # 主配置文件
conf.d          	           # 扩展配置目录,默认为空
default.d      	               # 默认网站的扩展配置目录,默认为空
fastcgi.conf    	           # FastCGI配置文件
mime.types      	           # mime类型定义文件
/var/log/nginx/error.log  	   # 错误日志文件
/var/log/nginx/access.log      # web访问日志文件
/usr/share/nginx/html/         # 默认网站的文件目录

八、了解nginx程序的命令行参数

nginx –h显示相关帮助说明
在这里插入图片描述
上面已经详细说明了各个参数的具体用途。常用的有-V,显示nginx开启的功能;-t当nginx配置后,加该参数检查配置文件是否有语法错误;-s重新配置nginx后,使用-s reload可使配置平滑生效。
输入nginx直接回车可启动nginx,另外还可以使用systemctl来控制。

九、开启nginx反向代理

本测试中指定真正的源服务器为www.wy.cn,即实现当访问192.168.1.5,实际是访问www.wy.cn。配置如下:

/etc/nginx/default.d/中新建一个配置文件,文件名为test.conf

vi / etc/nginx/default.d/test.conf

添加如下内容:

location ~ /*   #/* 表示根目录,亦即是整站跳转到www.wy.cn
{
proxy_pass http://www.163.com;   #声明目标站地址
}  #{}是nginx配置文件分隔符,;是配置内容行结束符

可尝试修改配置文件,将www.163.com替换为www.wy.cn、www.sina.com.cn等感受下。

保存后,reload使用配置生效

nginx –s reload

重新访问http://192.168.1.5,则显示的内容实际为www.wy.cn的内容

十、解读nginx主配置文件

为什么在/etc/nginx/default.d添加test.conf就可以了实现了反向代理效果了?
首先整站反向代理就只要test.conf中的那么几行就可以了,至于为什么在/etc/nginx/default.d目录中添加了就可以了呢?我们来看看nginx主配置文件(/etc/nginx/nginx.conf)
由于配置较多,显示过长,我对配置内容做了一些省略,详见下页……

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
#这部分是全部配置部分,并且加了include,表示还引用了外部配置文件
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    #……省略了部分内容
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    #这部分是http配置部分,包括最后的那个大括号},并且加了include,引用外部其它配置文件/etc/nginx/conf.d
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        #……
    }    
}
#这部分是server配置部分,即网站信息(开放的端口、主机名、网站根目录等等,以及代理),同时加了include引用default.d目录下的其它配置文件。看到这里应该明白了,为什么在default.d目录下加了test.conf就开启了反向代理吧。

不难看出,通过include能很科学的组织配置文件,比如在http部分再加一个include /etc/nginx/server.d,将所有server的配置文件放在server.d下,实现将所有server的配置文件放在同一个目录下,方便管理。

十一、总结

  1. 本文介绍了三种代理模式:正向代理、反向代理以及透明代理;
  2. 本文介绍了利用nginx实现反向代理;
  3. Nginx还有很多功能,以内页压缩、负载均衡等等这里均没有涉及,请自行了解;
  4. Nginx自带连接数统计功能,本例使用的安装包已开启该功能(如果是编译安装,记得开启),通过配置
  5. http_stub_status_module,可在web中十分方便地查看当前web的连接数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/60586.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式、Java8新特性实战 - List<T> 抽象统计组件

一、背景 在日常写代码的过程中,针对List集合,统计里面的某个属性,是经常的事情,针对List的某个属性的统计,我们目前大部分时候的代码都是这样写,每统计一个变量,就要定义一个值,且…

Qt中ffmpeg API存储和显示摄像头视频

Qt中ffmpeg API存储和显示摄像头视频的功能需要之前写的视频ffmpegAPI的视频播放的流程。 代码源码位置:https://download.csdn.net/download/qq_43812868/88157743?spm1001.2014.3001.5503 一、存储和显示摄像头的视频的流程 这是读取打开视频文件的流程&#x…

14-5_Qt 5.9 C++开发指南_基于HTTP 协议的网络应用程序

文章目录 1. 实现高层网络操作的类2. 基于HTTP协议的网络文件下载3.源码3.1 可是化UI设计3.2 mainwindow.h3.3 mainwindow.cpp 1. 实现高层网络操作的类 Qt 网络模块提供一些类实现 OSI 7 层网络模型中高层的网络协议,如 HTTP、FTP、SNMP等,这些类主要是…

生鲜蔬果小程序的完整教程

随着互联网的发展,线上商城成为了人们购物的重要渠道。其中,小程序商城在近年来的发展中,备受关注和青睐。本文将介绍如何使用乔拓云网后台搭建生鲜果蔬配送小程序,并快速上线。 首先,登录乔拓云网后台,进入…

Xilinx A7开发板LVDS IO无输出问题解决方法

使用A7-35T FGG484的FPGA开发板bank16上的IO作为差分LVDS的输入输出,搭建输入输出测试工程发现LVDS可以输入、无法输出。查阅UG471,找到如下信息: 手册中已经针对A7的LVDS做了明确的应用说明: (1)HP bank上…

客户流失分析预测案例 -- 机器学习项目基础篇(7)

客户流失 它是指现有的客户、用户、订阅者或任何类型的回头客停止与公司开展业务或结束与公司的关系。 客户流失的类型 合同客户流失:当客户签订了服务合同并决定取消服务时,例如有线电视,SaaS。自愿流失:当用户自愿取消服务时…

PHP正则绕过解析

正则绕过 正则表达式PHP正则回溯PHP中的NULL和false回溯案例案例1案例2 正则表达式 在正则中有许多特殊的字符,不能直接使用,需要使用转义符\。如:$,(,),*,,.,?,[,,^,{。 这里大家会有疑问:为啥小括号(),这个就需要两个来转义&a…

XSS漏洞原理及利用跨站请求伪造CSRF

XSS漏洞原理及利用&跨站请求伪造CSRF XSS一、案例二、什么是XSS三、XSS危害四、XSS的分类4.1、反射型XSS4.1.1、介绍4.1.2、利用过程 4.2、存储型XSS4.2.1、介绍4.2.2、利用过程4.2.3、案例 4.3、DOM型XSS4.3.1、介绍4.3.2、常用的DOM方法4.3.3、案例4.3.3.1、代码分析4.3.…

Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)

目录 一、yum安装 第一步:下载 第二步:编辑Keepalived配置文件(第一台) 第三步:编辑Keepalived配置文件(第二台) 第四步:我们在本机利用cmd ping一下 一、yum安装 第一步&…

IDEA基础使用

IDEA基础使用 1、IDEA中显示用法和用户截图展示有调用显示无调用显示 对应方法 2、如何找出项目中所有不被调用方法截图展示对应方法 3、常用代码(Code)说明及快捷键:4、未完待续待日后更新。。。总结:欢迎指导,也祝码友们代码越来越棒,技术越…

元素2D转3D 椭圆形旋转实现

椭圆旋转功能展示 transform-style: preserve-3d;(主要css代码) gif示例(背景图可插入透明以此实现边框线的旋转) 导致的无法点击遮挡问题可以参考我的另一个文章 穿透属性-----------------------css穿透属性 实时代码展示

【FAQ】在Linux中使用curl访问EasyCVR,返回报错Unauthorized的原因排查

EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,比如:视…

HCIE-Datacom真题和机构资料

通过认证验证的能力 具备坚实的企业网络跨场景融合解决方案理论知识,能够使用华为数通产品及解决方案进行企业园区网络、广域互联网络及广域承载网络的规划、建设、维护及优化,能够胜任企业网络全场景专家岗位(包括客户经理、项目经理、售前…

CBCGPRibbon 添加背景图片

resource.h中声明资源的ID:ID_RIBBON_BACKIMAGE rc文件中添加png图片路径: ID_RIBBON_BACKIMAGE PNG DISCARDABLE "res\\bkribbon.png" 代码中添加下测: //添加背景图片 m_wndRibbonBar.SetBackgroundImage(ID_RIB…

使用公式与格式控制Excel快速实现计划甘特图

项目中都会遇到做任务计划的需求,有的客户要求需要有甘特图的形式本文介绍如何使用excel 单元格实现甘特图显示,调整任务时间自动填充单元格填色实现甘特图效果。废话不多说,先看效果。 准备工作先创建两列开始时间与完成时间,这…

EMD经验模态分解介绍

EMD概述 其实一种信号分解方法,是一种自适应的数据处理方法,适合非线性和非平稳时间序列的分析和研究,其本质是对数据序列或信号的平稳化处理。 将上面6个信号叠加如下: 就是6个简单信号叠加,形成一个复杂信号。 核心…

Java精品项目系统第151期大学生校园帮系统打包(编号S063)

Java精品项目系统第151期大学生校园帮系统打包(编号S063) 大家好,小辰今天给大家介绍一个基于Spring Springboot MyBatis实现的大学生校园帮系统,演示视频文章末尾公众号对号查询观看即可 文章目录 Java精品项目系统第151期大学…

flink1.17 eventWindow不要配置processTrigger

理论上可以eventtime processtime混用,但是下面代码测试发现bug,输入一条数据会一直输出. flink github无法提bug/问题. apache jira账户新建后竟然flink又需要一个账户,放弃 bug复现操作 idea运行代码后 往source kafka发送一条数据 a,1,1690304400000 可以看到无限输出…

etcd

文章目录 etcd单机安装设置键值对watch操作读取键过往版本的值压缩修订版本lease租约(过期机制)授予租约撤销租约keepAlive续约获取租约信息 事务基于etcd实现分布式锁原生实现官方 concurrency 包实现 服务注册与发现Go 操作 Etcd 参考 etcd etcd 是一…

计算机网络-三种交换方式

计算机网络-三种交换方式 电路交换(Circuit Switching) 电话交换机接通电话线的方式称为电路交换从通信资源分配的角度来看,交换(Switching)就是按照某种方式动态的分配传输线路的资源 电话交换机 为了解决电话之间通信两两之间连线过多,所以产生了电话…