nginx给网站添加basic表单认证
很多大数据组件的adminUI 并没有设计授权认证,可以通过nginx 做一个简单的用户名密码认证:
- 生成密码文件
1 | yum install httpd-tools -y |
2 nginx 加上 auth_basic
信息
很多大数据组件的adminUI 并没有设计授权认证,可以通过nginx 做一个简单的用户名密码认证:
1 | yum install httpd-tools -y |
2 nginx 加上 auth_basic
信息
每一次ad-hoc查询,均是会占用有限的计算资源,而OLAP 系统在现有技术下,并不能支撑很高的查询并发,为了有效改善这个问题,在查询时间范围内数据未发生变化或者变化量小,有效运用缓存可以有效提高查询效率和用户体验
对SQL的查询结果进行缓存,可以在 adhoc 层 或者 api 层进行处理
领导说:
“目前各个项目分散在不同的仓库中,不利于管理,需要将多个项目仓库合并到一个工程仓库来进行开发,要求保留各个仓库迁移前的commits 记录,最好还能对命名不规范的项目进行重命名”
恕我直言,可以实现!
假设要合并ABC 不同的分支到新工程X,ABC 工程作为X工程的子目录
迁移A 工程的5.0分支到新工程X的A1目录
迁移B工程的dev分支 到新工程X的B1目录
迁移C 工程的6.0分支 到新工程X的C1目录
期望:合并后的目录结构
新工程X(master分支)
.
├── A1 (原A工程的某分支)
├── B1 (原B工程的某分支)
├── C1 (原C工程的某分支)
.git
README.md
服务程序集成了OAuth2-Client,以便于用户能够方便集成到支持OAuth2第三方登录的自有业务系统中。开发完成后,本地测试、或者直连服务程序,都没有问题。但凡放到线上环境,经过了nginx 转发后,我们的服务程序OAuth登录永远是以失败告终。
现象如下:
访问需要授权的接口时 https://blog.95id.com:4005/user_attr
,期望是跳转到授权服务器 github.com
进行登录授权,但实际都是跳转到``http://blog.95id.com/login`
因为当时直接用服务程序的端口没问题,就将解决思路放在了nginx 转发过程上。
当时线上环境路由规则类似于:
第一层:nginx1 4005 (ssl、负载均配置在这)
第二层:nginx2 4005
第三层:oauth2-client 8082
再看nginx 的配置,第一层nginx 配置:
1 | sudo npm install -g gitbook-cli |
安装完之后,你可以检验下是否安装成功。
1 | gitbook -V |
gitbook help 可以查看所有指令:
1 | gitbook build #build a book |
背景:用户界面中,为了改善用户使用体验,移除了 查询时点击按钮的操作,变更为只要检测到查询条件的修改都会自动触发计算。而实际使用过程中,用户在最终条件确定前,所有条件变更导致的查询计算均是计算资源的浪费
目的:为了避免自动触发的计算导致Presto 计算资源的浪费
如图所示,左侧指标、细分维度、公共过滤条件以及 日期范围、日期粒度、人群的变化都会导致分析查询的调用
方案:
每一次ad-hoc查询,均是会占用有限的计算资源,而OLAP 系统在现有技术下,并不能支撑很高的查询并发,为了有效改善这个问题,在查询时间范围内数据未发生变化或者变化量小,有效运用缓存可以有效提高查询效率和用户体验
单纯的N小时缓存失效的机制,会导致数据刷新不及时,造成数据理解上的偏差:
现象:在相同指标在不同图表数据不一致,尤其是在同一个DashBoard内时,让人难以理解;
原因:图表在不同时间创建和缓存的,在时间差内,相关的数据发生了变更
原理 从服务器A登录到服务器B,借用网上的一张图片
具体的操作:
A上面生成私钥公钥对,拷贝公钥内容追加写入到B的授权文件/root/.ssh/authorized_keys
。
上面的是单机操作,如果应对到几台/几十台的集群配置,手动去配置,那么需要配置n x 3次,这酸爽,手动表情[哭笑不得]
以下通过一个shell脚本,自动生成各台机器的id_rsa密钥对,并将所有机器的公钥写入到文件中,再自动将该文件内容分发到所有服务器并且将文件内容追加写入到authorized_keys
文件
基于spring boot的一个小项目,前后端分离,采用REST风格的接口设计,在做权限设计时觉得以前的权限控制实现比较繁琐,一个Action就对应一条Permission。所以想着接口可以走REST风格,权限为什么不可以呢?比如称作READ
风格的权限控制(Representational Authorization Design)……
REST早已不是新鲜事物,基于REST的权限控制网上也是有现成的,基于RESTful API 怎么设计用户权限控制?写得很棒,所以基于这篇文章的设计思路做了个实现(java)。本文的前半段,主要是引用文章阐述设计思路,后半部分主要为程序code实现。
其中后端自定义一个过滤器做权限过滤,用到了spring util包下的AntPathMatcher
做权限规则匹配;前端也就一个directive就搞定了。技术上并没有引用什么技术框架,关键还是抽象思维且将设计思路转化为程序上code。
传统的权限配置 vs 权限被抽象成资源和状态
1 | /getUsersGroups?id=1 |
vs
1 | GET /users/** 表示 对 users 资源 及events 附属的资源 有获取/浏览的权限 |
Update your browser to view this website correctly. Update my browser now