ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

知识点积累

2026/9/24 11:14:14 拓冰建站 浏览量
知识点积累

2024.01.02

1. 正向代理/反向代理

遇见场景:在客户端获取接口,拿着接口去后端代码查询不到该接口,实际结果在前端代码查询到了该接口,然后开始接触正向代理、反向代理。

(1)正向代理:指代理服务器代表客户端向服务器请求资源(前端的代理),在这种情况下,客户端通过正向代理与目标服务器通信,而服务器只能看到代理服务器的信息,不知道实际请求来自哪个客户端。

        示例:

        a. 突破网络访问限制的翻墙工具

        b. 企业内部网络使用代理服务器控制员工访问外部资源

        用途:

        a. 隐藏客户端真实IP地址,提高访问隐私和安全性;

        b. 绕过访问限制,访问被屏蔽的资源或网站;

        c. 缓存数据,减少重复请求,提高访问速度。

(2)反向代理:指代理服务器代表服务器向客户端提供服务(后端的代理),客户端请求的时候,请求被反向代理服务器接收,然后由代理服务器将请求转发给后端的目标服务器,最终将目标服务器的响应返回给客户端。

        示例:

        a. 将客户端的请求分别发到多个服务器,以平衡负载;

        b. 通过反向代理实现SSL终结,减轻后端服务器负担;

        c. 缓存静态资源,减少后端服务器压力。

        用途:

        a. 负载均衡:分发客户端请求到多个后端服务器,提高系统性能和稳定性;

        b. 安全性:隐藏后端服务器的真实IP地址,提高安全性;

        c. 缓存和压缩:减少后端服务器的负担,提高响应速度。

2.git强推导致数据丢失

遇见场景:

        本来打算push的时候一并把云效上的bug状态改为已修复,结果学艺不精fix #ZKPW-8213写成#ZKPW-8213,commit之后push之前又拉了同事的代码。

        看着这个push记录页面,总觉得不满意,然后又新学了一个回滚远程推送记录,正是新鲜的时候,就想把之前的推送记录删了,重新推送。经过下面等一系列操作,成功把同事的远程推送记录搞没了。

删除(回滚)push记录(在别人没有push之前)

//(数字代表回退几个版本)

git reset --hard HEAD~2

//强制覆盖

git push -f

 不得不说,当时我是非常心慌的,但十分幸运的是,和我一起开发这个分支的同事今天请假了(这代表不会有别人在我解决的时候进行推送代码,造成更让我痛苦的问题),在别人没有发现之前,我解决了它。

解决方式:

(1)把我今天修改的代码备份(创一个文档,ctrl+c,ctrl+v)

(2)在控制台输出git reflog show origin/2.3.02 ,2.3.02是我当前开发的分支,这串命令是为了查询最近一段时间远程分支2.3.02的推送日志

3b9ec7d (HEAD -> 2.3.02, origin/2.3.02) refs/remotes/origin/2.3.02@{0}: update by push
0542b8d refs/remotes/origin/2.3.02@{1}: update by push
3b9ec7d (HEAD -> 2.3.02, origin/2.3.02) refs/remotes/origin/2.3.02@{2}: update by push
0542b8d refs/remotes/origin/2.3.02@{3}: update by push
281fa6d refs/remotes/origin/2.3.02@{4}: update by push
6ff5135 refs/remotes/origin/2.3.02@{5}: update by push

baae6bf (tag: test-2.3.02.05) refs/remotes/origin/2.3.02@{6}: fetch origin --recurse-submodules=no --progress --prune: fast-forward

(3)新开一个控制台,git reset --hard 3b9ec7d,3b9ec7d为上面查询出来的第一行前面的数据串,这串命令是用于将当前分支的 HEAD 移动到指定的提交 (3b9ec7d),并强制更新工作目录中的文件,使其与指定提交的状态一致。(文绉绉的听不懂,大概就是把当前分支强制更新成3b9ec7d时的状态,作用在本地,与远程是没有关系的​​​​​​)

(4)然后打开git本地记录列表,选中当前的分支2.3.02,看看现在的是不是我想要的版本,不是?继续输入git reset --hard 0542b8d,0542b8d为第二行前面的数据串,再去git查看是不是想要的版本,一步步继续,直到找到我想要的版本。

(4)黄天不负打工人,baae6bf就是我想要的版本,反复确认了几遍,然后输入git push -f origin 2.3.02,2.3.02为我要开发的分支,这串命令是用于将本地分支 2.3.02 的更改强制推送到远程仓库 origin 的同名分支。

(5)接下来跑去远程仓库上看,有没有成功把同事的代码搞回来,嗯,非常棒,同事的代码回来了,我真是涕泗横流。

(6)最后再把我今天写的代码搞回去,push