LigerShark.WebOptimizer.Core | BuildBundlerMinifier | |
特点 | 在运行时捆绑和缩小 CSS 和 JavaScript 文件 具有完整的服务器端和客户端缓存,以确保高性能 可禁用缩小 支持使用通配模式 标记帮助程序与缓存破坏 支持内联 支持 SCSS | 将 CSS、JavaScript 或 HTML 文件捆绑到单个输出文件中 保存源文件会自动触发重新捆绑 支持通配模式 支持 CI 方案的 MSBuild 支持 缩小单个或捆绑的 CSS、JavaScript 和 HTML 文件 每种语言的缩小选项是可定制的 打开生成的文件时显示水印 任务运行程序资源管理器集成 命令行支持 快捷更新解决方案中所有捆绑包 禁止生成输出文件 转换为 Gulp |
注入(Program.cs) | services.AddWebOptimizer(); app.UseWebOptimizer(); | |
指定捆绑的项目 | 在运行时自动缩小 css 和 js,也可以在 AddWebOptimizer 中自定义。默认情况下,生成的文件不会保存到磁盘,而是保存在缓存中。 | 手动编辑 bundleconfig.json 文件来指定需要合并和缩小的文件 |
功能配置 |
| 在 bundleconfig.json 捆绑时设置
|
热重载(在开发模式中保存文件自动更新浏览器效果) | VS 安装扩展,方法:菜单 - 扩展 - 管理扩展 - 联机 搜索“Bundler & Minifier” | |
其它资料 | ASP.NET 官方文档 |
在 Windows 11 电脑为例,通过无线网络连接 Wifi 网络,该网络是由多台路由器通过 AP 的方式连接,查看电脑连接的是哪台路由器,首先打开设置 - 网络和 Internet
点击属性,可以看到当前连接的网络频带和网络通道
图中可见,当前使用 149 信道连接网络。
打开 Vistumbler,点击 Scan APs,可以看到附近所有的 Wifi 信号
图中红框标出的是使用了相同 SSD 和密码的 AP 路由器,其中,我的电脑连接的是 149 信道对应的路由器,根据 MAC 地址、生产厂商等信息就可以判断是哪一台路由器了。
自 2023 年 4 月起,Windows 11 已经重新支持显示“秒”,无需第三方工具来实现,点击查看详情。
ElevenClock 下载地址:GitHub,开源软件放心使用
效果:
* 该软件不会影响右下角的显示桌面和系统通知功能。
v3.3 设置方法:
√ 在主屏幕上时钟区显示本程序的时钟样式
ElevenClock 不直接修改任务栏上的时钟区域,而是将时钟覆盖在系统时钟区域的上方。
√ 不要在辅助监视器上显示时钟
此项按实际需求勾选
√ 时间与日期设置 - Set a custom date and time format (for advanced users only)
填写以下内容并 Apply
%H:%M:%S
%Y/%#m/%#d %a
如果不想显示星期,把 %a 去掉即可。
√ 使用自定义字体大小
因分辨率缩放设置不同可能导致显示的字体大小与系统时钟不同,会导致覆盖面过大或过小,从而使系统托盘中的其它图标显示不完整。所以应选择一个与系统时间差不多的字体大小。当显示“周序号”时 ElevenClock 时钟区域可能会远宽于系统时钟区域,可以设置系统时钟显示“星期”(方法见文末)。
v3.2 设置方法:
√ 在主屏幕上时钟区显示本程序的时钟样式
ElevenClock 不直接修改任务栏上的时钟区域,而是将时钟覆盖在系统时钟区域的上方。
√ 不要在辅助监视器上显示时钟
此项按实际需求勾选
√ 显示秒数
这是我们的最终目的。
√ 使用自定义字体大小
因分辨率缩放设置不同可能导致显示的字体大小与系统时钟不同,会导致覆盖面过大或过小,从而使系统托盘中的其它图标显示不完整。所以应选择一个与系统时间差不多的字体大小。当显示“周序号”时 ElevenClock 时钟区域可能会远宽于系统时钟区域,可以设置系统时钟显示“星期”(方法见文末)。
如何显示系统时间“星期”:
打开“更改日期和时间”,在“日期”选项卡的“短日期”中添加“ddd”。
普通的 nginx http 反向代理 https 时是需要配置证书的,但我们又不可能由源域名的证书,所以要使用 nginx 的 stream 模块。普通的 nginx 反向代理属于第七层代理,而 stream 模块是第四层代理,通过转发的 tcp/ip 协议实现高功能,所以不需要证书。
我们这里以使用宝塔安装的 nginx 为例,其实其他系统也是类似,只要找到编译的 nginx 的源码目录就行了
编译前先将已经安装的 nginx 文件进行备份
通过 ps 命令查看 nginx 文件的路径。以下所有步骤都以自身 nginx 路径为准
# ps -elf | grep nginx
# cd /www/server/nginx/sbin/
# cp nginx nginx.bak
然后查看当前 nginx 编译的参数
/www/server/nginx/sbin/nginx -V
将 ./configure arguents:之后的内容复制到记事本备用(备注:我们这里其实使用的是 Tengine-2.3.1,所以下面的编译参数可能跟普通 nginx 不是很一样)
内容如下:
--user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/lua_nginx_module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --add-module=/www/server/nginx/src/ngx-pagespeed
进入 src 目录
cd /www/server/nginx/src
我们在上面的内容中加入两个参数
./configure --user=www --group=www --prefix=/www/server/nginx --add-module=/www/server/nginx/src/ngx_devel_kit --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_cache_purge --add-module=/www/server/nginx/src/nginx-sticky-module --add-module=/www/server/nginx/src/lua_nginx_module --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=pcre-8.42 --with-cc-opt=-Wno-error --add-module=/www/server/nginx/src/ngx-pagespeed --with-stream --with-stream_ssl_preread_module
并执行它
然后
make && make install
重启 nginx
service nginx restart
nginx -V 看看模块是不是加载了
新建个站点,配置反向代理
卸载
使用 nginx.bak 文件替换掉自编译的 nginx 文件,替换后重启 nginx。
前提:
监控摄像头有推流功能
抖音有直播权限(粉丝数超过 1000)
一个已备案的域名
名词解释:
推流地址:由阿里云生成的接收摄像头视频流推送的地址。
播流地址:由阿里云生成可用于终端播放的视频流地址。
各环节功能解释:
摄像头:负责采集视频信息,并推送到阿里云。
阿里云视频直播服务:接收视频推流并分发到用户端(收费)。
OBS 软件:负责将视频流转化为可供直播伴侣调用的视频源。
直播伴侣:将视频源分发到短视频终端用户。
第一步:配置阿里云视频直播服务
1.1 在阿里云控制台中开通视频直播,在域名管理中添加域名。
这里需要添加两个域名,一个是推流域名,一个是播流域名。顾名思义,“推流”指从摄像头将流推送到阿里云,“播流”是用户播放视频流。
以添加域名推流域名“rtmp.xoyozo.net”和播流域名“live.xoyozo.net”为例:
然后按列表中的 CNAME 地址对域名作解析即可。
解析生效后,点击任意一个域名进行配置,将推流域名和播流域名相互绑定。成功后,可以在推流域名中的播流信息中看到播流域名,在播流域名的推流信息中也能看到推流域名。
1.2 生成推流地址/播流地址
在工具箱中点击地址生成器。
选择推流域名和播流域名,AppName 和 StreamName 任意填写,生成成功后获取以下地址:
注:鉴权串是按照鉴权规则生成的串,默认有效期 30 分钟,超出时间即中断推流。可以在域名管理中修改该值,或直接关闭 URL 鉴权。
第二步:在摄像机控制面板中配置推流域名
该步骤因摄像机的品牌和型号不同而有所差异。本文以 IP CAMERA 为例。
首先使用 IP 搜索工具在局域网上搜索摄像机,找到摄像机的 IP 地址。
在浏览器上打开,输入用户名和密码进入管理面板。
在“参数设置”-“网络设置”- RTMP Publish 中,将推流地址填入到“预定网址”中,点击“应用”。
刷新后查看“直播状态”和“直播网址”是否已生效。
若配置成功,可将播流地址在视频播放器中打开观看,或直接在 iPhone 或安卓手机中打开播流地址。
第三步:使用 OBS Studio 将直播流信号转换为虚拟摄像头信号
因抖音直播伴侣无法使用播流地址作为视频源进行直播输出,故使用 OBS 将播流信号转化为虚拟的本机摄像头信号源供直播伴侣调用。
下载安装 OBS Studio,添加一个“场景”:
然后添加一个“媒体源”:
去掉“本地文件”前面的勾,将播流地址填到“输入”框中:
确定后即可预览到直播内容:
拖动视频区域可调整输出范围。
点击“启动虚拟摄像机”。
提示:OBS 创建的虚拟摄像机默认会从物理麦克风和桌面系统音频拾音,请按需在“混音器”中配置。
第四步:OBS 使用 VLC 视频源(此步可略过)
若 OBS 直接添加媒体源不稳定,可以使用 VLC 视频源。
下载安装 VLC 播放器。
在 OBS Studio 中添加来源,选择“VLC 视频源”:
点击“播放列表”右侧的“+”,选择“添加路径 /URL”:
填写播流地址并确定。
第五步:配置抖音直播伴侣使用 OBS 的虚拟摄像机信号源
下载安装抖音直播伴侣,在任意场景中添加素材,选择“摄像头”:
摄像头选择“OBS Virtual Camera”:
点击“开始直播”:
今天进入阿里云 ECS Windows Server 服务器时,猛然发现 C 盘、D 盘根目录下都出现了“!aegis”和“zaegis”快捷方式(硬连接):
通过查看“属性”发现指向目录 C:\ProgramData\hipsdata\private
目录内部有 aaa、bbb 等目录,每个目录(包括最外层目录)都有许多以随机串命名的文件,后缀名各不相同,用记事本打开后也仅看到一长串随机字符串:
第一反应肯定是服务器被入侵了!
可是找了一圈也没发现哪里有问题,突然想起是不是前几天购买了阿里云的“云安全中心”这个产品,提交工单后得到了一个令人放心的结果:
这个是云安全中心诱饵目录文件,监控未知勒索病毒使用的。请参考:勒索病毒防护原理。
直接运行项目启动程序(在发布目录中,以项目名称为文件名,扩展名为 .exe 的可执行程序)
启动后可在“Now listening on:”所在行看到访问入口 URL(如图中 http://localhost:5000)。
在同服浏览器中打开该地址,访问到报错页面,回到该命令行窗口可见“fail”异常的详细信息。
如果您想在 MySQL 数据库的所有表的所有字段中搜索文本字符串,您可以使用 phpMyAdmin 非常轻松地完成此操作。以下是搜索每个 MySQL / MariaDB 数据库表的步骤。
1) 选择所需的数据库
第一步是选择要搜索的数据库。不要选择表格,只需选择要搜索的数据库。(如果您选择一个表格,您将在第 2 步中获得不同的搜索表单。)
在这张图片中,我展示了我想搜索一个名为 db_bbs2021 的数据库:
2) 转到搜索表单
如图所示,然后您要单击 phpMyAdmin“搜索”选项卡。当你这样做时,你会看到一个看起来像这样的表单:
现在您所要做的就是填写您的搜索条件。
3) 填写您的搜索条件
在我的例子中,我想搜索字符串“xoyozo”,我想查看每个 MySQL 数据库表,所以我将该字符串放在“要搜索的内容”字段中,然后选择每个数据库表:
4) 按“执行”并浏览结果
完成这些操作后,只需按“执行”按钮,稍等片刻,然后浏览结果即可。此图显示了结果的样子:
结果中显示“浏览”和“删除”链接的任何行都表示在该数据库表中找到了搜索字符串。当您单击浏览时,phpMyAdmin 将向您显示相关结果。
概括
总而言之,如果您需要在整个 MySQL 数据库及其所有表中搜索字符串,这种方法对我来说效果很好。
缺点
若数据库尺寸过大或服务器配置较低,在执行过程中可能会出现