1媒介

  作为前端开辟工程师,我们会常常碰到一些环境题目。比如本地调试线上页面、跨域、DNS缓存、网络哀求抓包、HTTPS哀求开辟调试以及证书等等。为了办理这些题目,我们必要利用hosts、Nginx、Fiddler/Charles以及各种各样的hosts切换管理工具等。在利用这写工具的同时,还存在一些题目必要办理。

  我们每天都要耗费很多时间在环境的设置、切换题目上,因此必要一个更好的方案来同一办理这些题目。

  hiproxy就是为了办理这些题目而生。这篇文章的内容重要分为三个方面:hiproxy诞生的配景(现有开辟模式反思)、hiproxy先容以及现壮和将来规划。

  2现有开辟模式反思

  我们每天都谋面临多套环境,比如线上环境、Beta环境、Dev环境以及本地开辟环境等,这里同一分为两类:线上环境和测试环境。

  体系hosts

  正常环境下,我们哀求资源的时间,走的是线上环境。而我们在开辟调试的时间,是不盼望如许的,我们必要在不修改哀求地点的环境下,将哀求定向到测试环境。那么,我们应该怎么做呢?

  各人都应该能想到利用hosts就能办理这个题目。hosts利用简单,而且不必要安装任何第三的工具。

  

  Nginx

  随着时间的推移,公司的项目越来越多,我们必要维护的项目也越来越多。假设我们为特定域名设置hosts,指向本地开辟环境,这个域名下全部哀求都到了本地。要使页面各种资源能访问,我们就必要在本地搭建一套完备的运行环境。

  但是,差别的项目大概必要利用差别的端标语,加上复杂的后端工程以及数据库,我们不盼望也不太大概在本地搭建起一套完备的环境来运行各种依靠的项目。我们只盼望把我们关心的这些项目(大部分都是前端项目)在本地运行起来以便开辟调试,其他的项目(大部分是后端项目)则利用线上环境。

  这时间,我们又该怎么做呢?

  聪明的前端开辟工程师又想到了利用Nginx来办理这个题目。Nginx是一个良好、高效的HTTP和反向署理服务器,可以更正确地对哀求做署理。

  

  可以说Nginx比力美满的办理了我们碰到的题目。

  但是,我们在利用Nginx的过程中,也存在一些不美满的地方,重要分为两个方面:必要hosts共同、每个人都必要各安闲本地维护一套Nginx设置,相互拷贝设置文件。

  必要hosts共同

  前面提到过,正常环境下,哀求资源的时间,走的是线上环境。固然在本地安装了Nginx,也设置了各种个样的哀求署理。默认环境下,欣赏器是不会哀求到本地Nginx服务的,要哀求到本地Nginx,必要修改体系hosts。

  

  由此可见,hosts黑白常非常的紧张,也正是由于hosts的紧张性,产生了各种各样的hosts切换、管理工具。

  相互拷贝设置文件

  别的,各人如今的风俗是,各安闲本地维护一套Nginx设置。最初,由一个工程师在本地设置好Nginx,然后其他工程师从他这里复制一份设置,稍作修改在本地运行。假如有新成员参加对应的项目,也是从其他人那边复制一份。

  

  如许的弊端在于,每个人复制设置文件、服从比力低。而且一旦环境变革,此中一个人修改之后,其他人的设置并不会随之被修改,更新不及时。

  其他题目

nginx服务器介绍(nginx服务配置)

  在利用hosts/Nginx以及hosts切换管理工具的同时,还会存在其他题目,比如DNS缓存、HTTPS哀求调试以及证书天生和信托题目等。

  既然我们利用了这么多工具尚有这么多题目,我们在想:到底有没有一种更好的方法来办理这些题目?

nginx服务器介绍(nginx服务配置)

  要是有一个工具,能一次性办理这些题目,那该多好啊!

  于是,hiproxy就如许诞生了。

  3hiproxy先容

  hiproxy是一个基于Node.js开辟的轻量、可扩展的署理工具。接下来重要从四个方面去先容它。

  特点

  hiproxy的特点,重要总结为四点:

  轻量可扩展:hiproxy依靠的第三方库比力少,安装快速;支持扩展下令/指令/页面。详情可以查察插件开辟指南。

  复用现有开辟设置风俗:hiproxy采取了各人从前认识的hosts和Nginx风格的设置,最洪流平地复用了各人之前的开辟、设置风俗。学习本钱低,利用起来更加轻松!

  HTTPS证书主动天生与管理:hiproxy可以扮演CA脚色,天生根证书。而且能主动根据每次哀求的域名信息,天生相对应的域名证书。

  跟欣赏器高度融合:hiproxy在启动服务的时间,可以知心地打开一个新的欣赏器窗口并主动设置好署理,省去了用户本身设置署理的步调。

  根本利用

  这里简单先容一下hiproxy的利用步调,假如必要查察具体的利用文档,请访问hiproxy的文档网站:https://hiproxy.org/

  第一步:启动hiproxy服务:hiproxy是一个下令行工具,我们可以进入到工作空间(workspace),然后启动一个署理服务。

  

  第二步:查找设置文件:启动之后,hiproxy会主动查找工作空间中全部项目下的设置文件,做语法分析并转换成hiproxy内部可利用的署理规则树。

  

  第三步:打开欣赏器窗口:然后hiproxy会打开一个欣赏器窗口,并主动为我们设置好署理。在Chrome中,可以访问来查察已见效的署理。这个窗口是独立于其他欣赏器窗口的,这设置的署理不影响其他欣赏器窗口。

  

  

  第四步:开辟调试:接下来,我们就可以利用这个欣赏器窗口了。这个欣赏器窗口中的全部哀求只要设置了对应的署理规则,hiproxy都会亲身行止理惩罚。

  

  设置文件

  hiproxy保举把设置文件存放到项目中并提交到Git,与团队中其他的成员共享设置。假如是简单的设置,可以采取hosts,而比力复杂的设置,可以利用rewrite。

  简单设置-hosts

  hosts可以看作一个加强版的体系hosts,除了体系hosts语法之外,hiproxy也扩展了hosts语法,支持端标语。

  示例:

  复杂设置-rewrite

  对于复杂需求的设置,hiproxy采取rewrite设置文件,参考了Nginx设置语法,大部分语法跟Nginx一样。重要特点:

语法跟Nginx设置语法雷同;

支持正则表达式/分组;

支持哀求、相应内容修改;

支持内置变量;

  示例:

  

  跟之前的对比

  DNS缓存题目:之前修改体系hosts后,由于DNS缓存的存在,必要等待缓存逾期大概重启欣赏器。利用了hiporxy,更改设置文件之后,hiproxy会主动更新,不必要重启,革新欣赏器即可见效!

  设置文件团队共享:之前每个人本地维护本身的hosts/Nginx设置文件,维护本钱高,更新不及时。而hiporxy保举把设置文件放到项目中并提交git,团队共享。缩减维护本钱,进步生产力。

  https证书题目:之前用复杂的OpenSSL下令天生自署名证书或找他人新增域名,证书不被信托。而hiporxy能主动天生证书,不消本身新增域名。唯一要做的就是导入一次根证书。具体的设置请查察SSL/TLS证书设置。

  同一办理痛点:之前每个人都要维护hosts、利用Nginx和一些其他的辅助工具。利用了hiproxy,可以不再用利用各种工具维护体系hosts,不再必要用nginx。

  4hiproxy近况和将来规划

  近况

  开源:hiproxy如今已经开源,全部代码和文档都在github:https://github.com/hiproxy/hiproxy。欢迎各人star、为hiproxy贡献代码大概给出发起。

  测试:从代码层面来讲,覆盖率已经到达了90%以上,根本利用的case已经全部覆盖。

  文档:如今我们为hiproxy编写了重要的文档:https://hiproxy.org/,但是如今文档中大概存在一些细节方面的缺失,我们会不绝美满。

  维护:如今重要是我(@zdying)、狼叔(@i5ting)、zhouhailong、huaziHear和其他几个贡献者在维护,我们会长期维护,欢迎各人利用hiproxy。

  插件:如今我们为hiproxy开辟了一个Dashboard插件,可在线管理hiproxy的设置文件,详情可以查察hiproxy-plugin-dashboard;

  将来规划

  测试/文档:hiproxy会不绝美满测试,争代替码覆盖率到达100%,添加更多的Case。编写更加美满过细的文档,方便各人查阅。

  更多实用插件:hiproxy将来会有更多实用的插件、指令和CLI下令,办理更多实际的题目。比如可编程mock、网络哀求抓包等。

  性能:hiproxy会不绝改进代码、优化数据布局和算法,进一步提拔性能。

  5末了

  hiproxy正处于发展时期,欢迎各人关注并利用hiproxy并提着名贵的发起,让hiproxy更得当各人、更加强大。同时也盼望各人能为hiproxy贡献一些源代码大概文档的编写、翻译。

  hiproxy地点:https://github.com/hiproxy

  hiproxy文档:https://hiproxy.org/

文章版权及转载声明:

作者:猫某人本文地址:https://360admin.cn/nginx-fu-wu-qi-xian-rong-nginx-fu-wu-she-zhi发布于07-24
文章转载或复制请以超链接形式并注明出处360站长导航网