图解跨域请求、反向代理原理,对前端更友好的反向代理服务器 - Caddy

caddy

写在开头

本文采用图文解析、结合实战的方式进行网络原理解析,帮助大家去掌握一些网络知识,并了解 Caddy 的基本使用(见下图)。

caddy

本人计划在近几年将持续输出深度好文,如果对这类文章感兴趣的话,还请您点个 关注 支持一下吧!

引言

大家好呀~

本篇文章主要是安利一个对前端更友好的 web 服务器 Caddy,我们会介绍 Caddy 的安装使用,并通过图文来解析其原理。

Caddy 是唯一一个在默认情况下自动使用 HTTPSWeb 服务器,可以用来完成跨域请求、反向代理、静态文件服务器、部署 History SPA 应用、负载均衡等等功能,在可读性、可维护性和易用性方面都做的很好,对前端更友好!

如果你还是不太理解 Caddy 到底是用来做什么的,那你可以把它简单理解为对前端更友好的 nginx

反向代理

本文讨论的 代理 仅限于 HTTP 代理,不涉及其他协议。

Caddy 是一个简单好用的 Web 服务器,反向代理 是它的一个核心功能。所以,在介绍 Caddy 之前,我们先介绍一下 反向代理 是什么,反向代理 可以帮我们做什么事情。

我们先来了解一下正向代理,正向代理就是在客户端与服务器之间实现一个代理服务器,客户端的所有请求先经过代理服务器,由代理服务器再去请求真实服务器,请求成功后再由代理服务器将真实服务器的响应结果发回至客户端。

正向代理的经典案例就是公司内部的 VPN 代理,企业员工在 远程开发 时需要先连接 VPN,再由 VPN 连接至公司服务器。这样做可以防止一些陌生连接,拒绝除 VPN 外的所有外网连接,只有连接 VPN 才能正常访问公司服务器。

我们来画一张图帮助大家理解什么是 正向代理(见下图)

caddy

而反向代理正好相反,反向代理一般是在服务器端,客户端发起的网络请求首先被反向代理服务器收到,再由反向代理服务器决定转发到某个具体的服务。换而言之,反向代理服务器将决定客户端最终访问到的目标服务器,常见的反向代理案例有负载均衡、CDN 加速。

我们在实际开发中,可以使用反向代理来 解决前端跨域问题部署前端服务 等等,我们本篇教程也是主要介绍这两个功能的使用。

我们来画一张图帮助大家理解什么是 反向代理(见下图)

caddy

最后使用一句话概括就是:正向代理隐藏真实客户端,反向代理隐藏真实服务端。

Caddy 的优势

我们在实际开发中,可以使用 Caddy 来搭建反向代理服务器,从而完成跨域请求、静态文件服务器、部署 History SPA 应用、负载均衡等等功能,使用 Caddy 来做这些工作的好处是我们通过几行配置文件就可以完成这些工作,非常的简单易用。

在日常开发中我们通常使用 webpack 解决开发环境的跨域和请求转发问题,webpackproxy 选项可以解决大部分跨域和请求转发问题,但是对 history 路由的支持性较差,并且组内开发的成员之间的配置可能会导致冲突,造成额外的维护成本。

使用 nginx 可以解决这些问题,但是 nginx 比较复杂,对前端人员并不是特别友好。在学习 nginx 的过程中我们可能会渐行渐远,忘记了我们的初衷只是为了解决跨域和请求转发问题。

Caddy 使用 Go 语言编写,跨平台性强,配置文件具有高可读性,对前端更友好。在可读性、可维护性和易用性方面的优势成为了选择 Caddy 的理由。

安装 Caddy

介绍了那么多,我们差不多可以进入到实战部分了,先从 安装 开始吧!

Caddy 目前有 1.02.0 两个大版本,本文是针对 2.0 版本的教程,如果需要使用 1.0 版本的话建议查看 Caddy 1.0 官方文档

如果想要先了解 Caddy 好不好用,可以先跳过 安装 这一节。

Mac 平台

Mac 非常适合开发者,欢迎广大开发者加入 Mac 大家庭。

首先我们需要下载 Caddy,你也可以去 官方地址 下载最新版本。

由于 Caddygo 编写,go 编译后的文件可以直接执行,所以我们下载完成后我们直接解压到自己的目录,比如 ~/bin/ 目录。然后我们加上一个映射就可以使用啦,我们使用 vi ~/.bash_profile 命令编辑文件,添加下面这行代码:

export PATH=~/bin

添加了全局映射后,我们使用下面这行命令使我们的改动生效

source ~/.bash_profile

接下来我们输入 caddy version 来验证我们的安装是否生效,如果可以正确输出 caddy 的版本说明已经安装成功啦~(见下图)

caddy

Windows 平台

首先我们需要下载 Caddy,你也可以去 官方地址 下载最新版本。

下载完成后,解压到你的常用目录(路径最好别带中文),然后我们复制 Caddy 所在目录的路径(见下图)

caddy

然后,我们使用 Win + E 唤起文件管理器,然后右键点击我的电脑,点击 属性(见下图)

caddy

然后,我们选择 高级,点击 环境变量(见下图)

caddy

然后我们在弹出的窗口中,选中 Path 这一栏(见下图)

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值