Certbot为新子域名添加证书
certbot已经管理了一些域名或子域名的情形下,如果要对一个新增的子域名添加SSL证书支持,可以使用以下命令:
sudo certbot -d xxx.xxx.com --expand
使用nginx反向代理以实现网站镜像
某些公司会墙特定网站,如果你有一个可访问的域名和服务器,就可以通过nginx反向代理来来解决这些问题。比如现在我们用mirror.example.com镜像www.baidu.com,以下是详细操作。
DNS里添加A记录,新增子域名,如:mirror.example.com
在nginx里新增解析文件。注意下面的配置是用https去镜像https。
server { server_name mirror.example.com; # 下面这段location配置是关键 location / { sub_filter www.baidu.com mirror.example.com; sub_filter_once off; proxy_ssl_session_reuse off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X- ...
docker搭建cdh单机模拟环境
出于学习研究的需要,需要在我的机器上搭建一个cdh环境,自从转投docker之后,就很少用vmware等虚拟机了,所以尝试着用docker去搭一套cdh环境。以下是具体步骤。
拉取cdh镜像
docker pull cloudera/quickstart
启动容器
docker run --name cdh -d --hostname=quickstart.cloudera --privileged=true -t -i -p 8888:8888 -p 8020:8020 -p 8022:8022 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8890:8890 -p 60010:60010 -p 10002:10002 -p 25010:25010 -p 25020:25020 -p 18088:18088 -p 8088:8088 -p 19888:19888 -p 7187:7187 -p 11000:11000 cloudera/qui ...
读取SQL Server 事务日志
开始使用下面的脚本开始
CREATE DATABASE [Crack_Me];GOUSE Crack_Me;GOCREATE TABLE [dbo].[Crack_Me_If_You_Can]( [ID] [int] PRIMARY KEY IDENTITY NOT NULL, [Insert_Date] [datetime] NOT NULL, [Some_Data] [varchar](100) NOT NULL, [Optional_Data] [varchar](50)NULL, [Life_the_Universe_and_Everything] [int] NOT NULL,);GOINSERT INTO [Crack_Me_If_You_Can]( Insert_Date, Some_Data, Optional_Data, Life_the_Universe_and_Everything)VALUES (GetDate(), 'Don''t Panic', 'Share and Enjoy', 42);GOS ...
Drools性能实践总结
本文总结一下Drools的性能提升要点。
要点
选择7.5以后的版本。老版本存在一个性能BUG。
KnowledgeBuilder很耗时,编译结果要缓存起来。这样builder就不会成为瓶颈。
kbase过大,会导致内存消耗过多,gc也可能成为瓶颈。建议按规则相关性拆分为多个Kbase。但需要注意,如果一个kbase里的规则数太少,那么无法发挥drools的优势,跟你自己写if-else 没啥差别。所以拆分的重点是规则相关性,而不是数量。
drools的体系注定其更适应增加rule数,而不是增加fact数。在使用时牢记此点。另外,最极端的情况,使用一个通用类去表达所有的fact,会增加beta节点向左侧匹配值的次数,也会导致性能下降,并降低规则可读性。
尽量减少data或fact的碎片化,尽量在同一个session中仅包含相关fact和相关rule。在创建session时,将所有fact批量insert到session中,然后fire比为每个fact单独触发规则更为可取。
在调用insert()之前准备好数据远远胜过在LHS里去访问数据库获取数据,这种做法可以显著提高性能 ...
docker for windows 小坑记录
这几天在windows里折腾docker。遇到了和linux下不一样的地方或者和网上众言不一致的地方。记录备忘。
-e 参数要用双引号
--linux-e 'flag=true'--windows-e "flag=true"
docker for windows 依赖windows 10 专业版,但vmware workstation pro 15 已经与 hyper-v不冲突了
-v 注意宿主机路径分隔符和容器的路径分隔符不一样
-v c:\data:/data
portainer如果加上参数--restart always,每次自动重启后,会导致登陆时用户名密码失效。需要再重启容器才行。
待续。
vscode设置同步
vscode的设置/主题/插件等可以通过Settings Sync插件来同步。它是通过github来进行中转。
大体的步骤是
创建一个GitHub的private token给与create gist权限。
为该插件配置token并上传配置,此时会生成一个gist id。
在另一台机器里安装该插件后,请求下载配置。此时会要求输入token和gist id。完成后开始下载配置。
快捷键1. Upload Key : Shift + Alt + U2. Download Key : Shift + Alt + D
将ubuntu主目录修改为英文
export LANG=en_USxdg-user-dirs-gtk-updateexport LANG=zh_CN
推送本地项目到远端git仓库
git initgit add .git commit -m "first commit"# url是指远端仓库的urlgit remote add origin urlgit push -u origin master
linux wget oracle jdk
wget --no-cookies \--no-check-certificate \--header "Cookie: oraclelicense=accept-securebackup-cookie" \https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz \-O jdk-8-linux-x64.tar.gz
