Docer Compose 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
version: "3"
services:
agile_config_admin:
image: "kklldog/agile_config"
restart: always
ports:
- "15000:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
environment:
- adminConsole=true
env_file:
- ./var.env
agile_config_node1:
image: "kklldog/agile_config"
restart: always
ports:
- "15001:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
env_file:
- ./var.env
depends_on:
- agile_config_admin
agile_config_node2:
image: "kklldog/agile_config"
restart: always
ports:
- "15002:5000"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
env_file:
- ./var.env
depends_on:
- agile_config_admin
networks:
net0:
阅读全文 »

incorrect:不准确的; 不正确的; 不真实的;

attempts:企图; 试图; 尝试;

Initial Catalog:数据库名称

Persist Security Info:保持安全信息

阅读全文 »

常规安装

参考官网:https://nginx.org/en/linux_packages.html#Ubuntu

安装先决条件

1
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring

导入官方 nginx 签名密钥,以便 apt 可以验证软件包的真实性。

1
2
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

验证下载的文件是否包含正确的密钥:

1
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

以稳定的 nginx 包设置 apt 存储库,请运行以下命令:

1
2
3
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

使用主线 nginx 包,请运行以下命令:

1
2
3
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

设置存储库固定,使我们的软件包优于发行版提供的软件包

1
2
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
阅读全文 »

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@pony:/lims/redis# tree
.
├── conf
│ ├── master.conf
│ ├── sentinel-1.conf
│ ├── sentinel-2.conf
│ ├── sentinel-3.conf
│ ├── slave1.conf
│ └── slave2.conf
├── docker-compose.yml
├── master
│ └── data
├── slave1
│ └── data
└── slave2
└── data

注意:新建的目录需要使用 chmod 命令授权。

阅读全文 »

Docker 依赖项

为了安装并配置 Docker ,你的系统必须满足下列最低要求:

  • 64 位 Linux 或 Windows 系统
  • 如果使用 Linux ,内核版本必须不低于 3.10
  • 能够使用 sudo 权限的用户
  • 在你系统 BIOS 上启用了 VT(虚拟化技术)支持 on your system BIOS(参考: 如何查看 CPU 支持 虚拟化技术(VT))
  • 你的系统应该联网

在 Linux ,在终端上运行以下命令验证内核以及架构详细信息:

1
2
uname -a
Linux pony 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
阅读全文 »

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。

主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。

工作原理

SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出。需通过上拉电阻接电源VCC。当总线空闲时,两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路。在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容。而线路中电容会影响总线传输速度。当电容过大时,有可能造成传输错误。所以,其负载能力为400pF,因此可以估算出总线允许长度和所接器件数量。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件。然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下。主机负责产生定时时钟和终止数据传送。

阅读全文 »

下列运算符在两个语言中都是顺序点(运算符未重载时): &&||?:,(逗号运算符)。

C++也包含类型转换运算符 const_caststatic_castdynamic_castreinterpret_cast,不在表中列出以维持简洁。类型转换运算符需要在表达式中明确使用括号,因此并不存在优先级的问题。

在C里有的运算符,除了逗号运算符和箭头记头的运算符以外,在Java、Perl、C#和PHP同样也有相同的优先级、结合性和语义。

阅读全文 »

邻接表模型

每个节点都有一个指向其父节点的指针。顶层节点没有父节点。

比如区域表(国、省、市、区):

1
2
3
4
5
CREATE TABLE Area (
[id] [int] NOT NULL,
[name] [nvarchar] (50) NULL,
[parent_id] [int] NULL,
[type] [int] NULL );

parent_id 是父ID,省的父ID是国,市的父ID 为省,以此类推。

阅读全文 »

WPAD简介

WPAD(Web Proxy Auto-Discovery Protocol) 是 Web 代理自动发现协议的简称,该协议的功能是可以使局域网中用户的浏览器可以自动发现内网中的代理服务器,并使用已发现的代理服务器连接互联网或者企业内网。WPAD 支持所有主流的浏览器,从 IE 5.0 开始就已经支持了代理服务器自动发现/切换的功能,苹果公司考虑到 WPAD 的安全风险,在包括 OSX 10.10 及之后版本的操作系统中的 Safari 浏览器将不再支持 PAC 文件的解析。

WPAD工作原理

当系统开启了代理自动发现功能后,用户使用浏览器上网时,浏览器就会在当前局域网中自动查找代理服务器,如果找到了代理服务器,则会从代理服务器中下载一个名为 PAC(Proxy Auto-Config) 的配置文件。该文件中定义了用户在访问一个 URL 时所应该使用的代理服务器。浏览器会下载并解析该文件,并将相应的代理服务器设置到用户的浏览器中。

阅读全文 »

代理自动配置(Proxy Auto Config)

PAC(Proxy Auto-Config) 配置文件使用 Javascript 进行 URL 和代理服务器的描述。通常使用 proxy.pac 作为文件名, WPAD 的规范则使用 wpad.dat 作为 PAC 文件的文件名。

一个PAC文件包含一个JavaScript形式的函数 FindProxyForURL(url, host)。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理器或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。 浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

自动化技术

现代的浏览器实现了几个级别的自动化;用户可以选择最适合他们需要的级别。下面的这些方法被普遍的实现:

  • 手动代理配置 :为所有的URLs规定一个主机名和端口作为代理。大多数浏览器允许用户规定一个域名的列表(例如 localhost),访问这个列表里面的域名的时候不通过代理服务器。
  • 代理自动配置(PAC) :规定一个指向PAC文件的URL,这个文件中包括一个JavaScript函数来确定访问每个URL时所选用的合适代理。这个方法更加适合需要几个不同代理配置的笔记本用户,或者有很多不同代理服务器的复杂的企业级设置。
  • 网络代理自发现协议(WPAD) : 浏览器通过DHCP和DNS的查询来搜索PAC文件的位置。
阅读全文 »

简介

WebDAV(Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

IETF WebDAV 工作组的目标是,设计一个协议,它提供基于标准的论坛中任何分布式创作工具需要的功能。 当前的 WebDAV 规范 (IETF RFC 2518) 解决协作式创作工具的三个主要问题:

  • 改写保护。HTTP 1.1 无法确保客户端可以保护资源,并且可以在其他客户端同时编辑它们的情况下进行更改。 使用 WebDAV,可以通过多种方式来锁定资源,以便让其他客户端知道您对所讨论的资源感兴趣,或者防止其他客户端访问该资源。
  • 资源管理。HTTP 只能直接访问单个资源。 WebDAV 提供一种更有效地组织数据的方法。 WebDAV 引入了可包含资源 的集合(类似于文件系统文件夹)概念。 通过 WebDAV 进行的资源管理包括如下功能:创建、移动、复制和删除集合,以及集合中的资源或文件。
  • 文档属性。不同类型的数据具有唯一的属性,这有助于描述数据。 例如,在电子邮件中,这些属性可能是发件人的姓名和接收邮件的时间。 在协作文档中,这些属性可能是文档原始作者的姓名和最后一个编辑者的姓名。 因为人们使用的文档类型各不相同,所以可能的属性类型列表也变得无限大。 XML 是 WebDAV 所需的一种可扩展通讯工具。
阅读全文 »

简介

LDAP 的全称是 Lightweight Directory Access Protocol,「轻量目录访问协议」,它是基于X.500标准的轻量级目录访问协议。

目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,类似文件目录一样。
目录数据库和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。

LDAP 「是一个协议」,约定了 Client 与 Server 之间的信息交互格式、使用的端口号、认证方式等内容。

LDAP的基本模型

目录树概念

    1. 目录树:在一个目录服务系统中,整个目录信息集可以表示为一个目录信息树,树中的每个节点是一个条目。
    1. 条目:每个条目就是一条记录,每个条目有自己的唯一可区别的名称(DN)。
    1. 对象类:与某个实体类型对应的一组属性,对象类是可以继承的,这样父类的必须属性也会被继承下来。
    1. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性。
阅读全文 »

站点

所有站点

1
2
3
4
5
# 导出所有站点
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\sites.xml

# 导入所有站点
%windir%\system32\inetsrv\appcmd add site /in < c:\sites.xml

单个站点

1
2
3
4
5
# 导出单独站点
%windir%\system32\inetsrv\appcmd list site "站点名称" /config /xml > c:\mywebsite.xml

# 导入单独站点
%windir%\system32\inetsrv\appcmd add site /in < c:\mywebsite.xml

应用程序池

所有程序池

1
2
3
4
5
# 导出所有应用程序池
%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\apppools.xml

# 导入所有应用程序池
%windir%\system32\inetsrv\appcmd add apppool /in < c:\apppools.xml

单个程序池

1
2
3
4
5
# 导出单独的应用程序池
%windir%\system32\inetsrv\appcmd list apppool "应用程序池名称" /config /xml > c:\myapppool.xml

# 导入单独的应用程序池
%windir%\system32\inetsrv\appcmd add apppool /in < c:\myapppool.xml

参考:

IIS配置导入导出

winsw安装Windows服务

1,下载安装:

https://github.com/winsw/winsw

2,将WinSW.exe复制到自定义的目录,并重命名为自己想命名的服务名称minio-server.exe。

3,同目录下创建minio-server.xml。特别注意,xml和exe必须同名

4,配置minio-server.xml文件

阅读全文 »