nginx
基本概念反向代理对客户端隐藏服务器的真实位置,与正向代理(vpn)相反
负载均衡轮询,加权轮询,iphash
动静分离动态页面与静态页面交给不同的服务器解析
默认的配置文件123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { w ...
aidlux 配合 nginx 搞一个小服务器用
内网渗透工具选择一款的内网渗透工具,such as 飞鸽,点击注册,注意客户端要下载arm64的免费的基本能用,不过速度比较慢,对速度有要求比如想要远程控制aidlux的建议付费上高速通道。
nginx反向代理aidlux 已经安装了nginx,其配置文件在:/etc/nginx/下我们可以在这个文件夹下创建一个conf结尾的文件:其中末尾斜杠可参考nginx如何配置代理转发
服务自启在/root/下找到 .rc.local文件编辑后台启动部分可以参考Linux nohup 命令
React
虚拟DOM
本质是object类型的一般对象
虚拟DOM属性较少(相对于真实DOM),因为虚拟DOM是React的内部使用,无需真实DOM的那么多属性
虚拟DOM最终会被React转换为真实DOM呈现在页面上
1234567891011121314151617181920<!DOCTYPE html><html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react-dom.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalo ...
office
excelexcel中取消合并单元格并填充
选中区域,点击取消合并单元格
键盘“f5”,定位条件选择空值
此时所选区域为刚才所选区域中的空值区域,也就是取消合并单元格之后空出来的地方
键盘输入“=”,键入公式,点击空值上方单元格(合并单元格中的值)
“ctrl”+“enter”批量赋值
定位快捷键ctrl+G,方便在选中数据集中选出符合条件的单元格
MATCHmatch函数可以比较某个值在某个数据集中是否存在,如果存在返回其行,不存在则显示“#N/A”,藉由此可以筛选出某个数据集中在指定数据集中不存在的值,配合excel的定位功能中的公式部分(错误),可以删除不存在的整行数据。
12=MATCH(A1,J:J,0)=MATCH(要查找的值,数据集:J,J表示整个J列,0表示完全匹配)
excel中生成SQL语句12345678910=CONCAT("UPDATE amer_model SET description='",C6,"',sender='",D6,"',rec ...
aidlux上部署mirai
aidlux上部署miraijdk11安装
注:如果遇到失败的情况可以尝试换源,我没有换源安装成功了
apt-get update
apt install openjdk-11-jdk
安装mirai
(感谢AidLux开发者技术1群的网友 “受、死 ” 提供的思路)
先下载windows版本的iTXTech MCL Installer
运行后会生成这些文件
将这些文件(安装器,文档,cmd文件可以除外)通过aidlux网页端的文件管理器上传到aidlux中
如存入/home/mirai/目录下
前往/home/mirai/目录,运行./mcl执行安装(或者java -jar mcl.jar执行安装)
安装完成(直接启动)
./mcl 启动
自动登录设置
vim打开/home/mirai/config/Console/AutoLogin.yml文件
编辑账号密码,:wq保存退出
滑动验证码问题
参考mirai (mamoe.net ...
Spring
一些经验构造方法注入Spring 团队提倡使用基于构造方法的注入,因为这样一方面可以将依赖注入到一个不可变的变量中 (注: final 修饰的变量),另一方面也可以保证这些变量的值不会是 null。
ApplicationContextAware接口一个bean实现该接口,spring会自动调用该类中实现的setApplicationContext接口。
参考案例:quartz中的AutowiringSpringBeanJobFactory
123456789101112131415161718/** * 负责生成job实例 */public class AutoWiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware { private AutowireCapableBeanFactory beanFactory; @Override public void setApplicationContext(final Applicatio ...
响应式架构
问题传统架构
线程池预先创建大量线程,一个请求绑定一个线程
一般一个线程需要1M左右的内存
且线程切换需要耗时
所以,内存开销与时间开销会随着线程量而增大
大量资源开销在线程的管理上
异步调用
发生阻塞后告诉系统,让当前线程先做别的事情,阻塞结束再提醒系统
Callback
回调地狱
响应式编程
发布和订阅
backpressure 背压
控制流速,避免大量数据的接受
协商
订阅者通过自己的能力来通知发布方的通知数量
一些知识函数式接口可有多个重载
使用lambda表达式时可指定参数类型来判断使用哪个方法
常用函数式接口
supplier 0输入,1输出
consumer 1输入, 0输出
function 1输入,1输出
unaryOperator 同类型的1输入1输出
BiFunction 2输入,1输出
流编程注意中间操作是不会执行的, 只是一个声明, 一个流编程必须有一个终止操作才会执行
且在流编程中,终止操作只能有一个, 中间操作0-n个
Project Reactorpublisherflux发布0-n个对象
创建方式
1234567Flux.just(1,2,3,4, ...
arm架构linuxdeploy使用selenium
linuxdeploy使用selenium参考文章https://blog.csdn.net/nopname/article/details/99484475
由于我的手机是arm架构,而谷歌浏览器没有提供arm版本,所以使用firefox2.系统:Ubuntu
安装
apt install firefox-esr # 安装火狐浏览器
sudo apt-get install iceweasel xvfb -y # 虚拟显示
sudo pip3 install selenium==2.53.6 pyvirtualdisplay pytest
安装驱动 i. 驱动下载:Release v0.23.0 · mozilla/geckodriver (github.com) ii. 其中v0.23.0还提供arm版本,后面的版本就没有arm的了 iii. 使用wget 下载: 1) 没有wget:apt-get install wget iv. 12345wget https://github.com/mozilla/geckodriver/releases ...
linux_deploy安装并ssh连接教程
参考教程https://blog.csdn.net/weixin_40842492/article/details/107288522https://www.jianshu.com/p/687ba1e11ab5https://pluhuxc.github.io/2020/10/23/linuxdeploy-guide.html同时本文中一些图片来自于这些教程
准备工作机型选择这里建议采用配置较高,安卓版本较新且内存较大的手机,最好支持内存卡扩展的手机。本案例使用的机型为小米3移动版,该机型安卓版本较旧,所以在找合适的Linux deploy版本时花了不少时间。且该机型不支持内存卡扩展。该机型安卓系统为4.4.4,miui8开发版。
手机root其他机型的手机请自行搜索root方法,小米手机需要系统为开发版,如果你的手机为稳定版请手动刷成合适的开发版。切记刷成开发版之后不要再点击升级系统了,不然很大可能会升成稳定版。小米手机开发版可以直接获得root权限。之后需要给busybox和linux deploy root权限。
busybox 下载busybox一 ...
edge浏览器使用pyecharts_snapshot_selenium渲染成图片
pyecharts渲染成图片
snapshot-selenium 是 pyecharts + selenium 渲染图片的扩展,使用 selenium 需要配置 browser driver,这部分可以参考 selenium-python 相关介绍,推荐使用 Chrome 浏览器,可以开启 headless 模式。目前支持 Chrome, Safari
由于个人用的浏览器是edge,但selenium-python不支持edge,所以做了如下配置:
下载edge web driver:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
将解压得到的文件放入一个文件夹中,将其中的exe文件重命名为MicrosoftWebDriver.exe, 然后将此文件夹放入path环境变量
对snapshot源码做一点修改,添加edge相关的配置,期间通过查看webdriver的init文件得知获取edge浏览器驱动的方法为webdriver.Edge():
传入browser参数:
运行结果
...