kong接口的搭建部署

  • 1.简介
  • 2.kong的安装部署
    • 2.0 直接安装
    • 2.1 使用yum仓库安装(下载最新版本)
    • 2.2 docker安装kong
      • 2.2.1 安装docker
      • 2.2.2 安装kong
    • 2.3 k8s安装
  • 3.kong数据库的配置
    • 3.1 PostgreSQL(实验所用数据库)
      • 3.1.1 简介
      • 3.1.2 安装
        • 3.1.2.1 docker下安装
        • 3.1.2.2 仓库安装
      • 3.1.3 准备数据库
    • 3.2 Cassandra
      • 3.2.1 简介
      • 3.2.2 安装(docker安装)
    • 3.3 DB-less(无数据库模式)
      • 3.3.1 简介
      • 3.3.2 使用测试
  • 4.启动Kong
    • 4.1 docker下操作
    • 4.2 通过rpm包(实验所用)
      • 4.2.1 修改配置文件
      • 4.2.2 启动和停止
  • 5.konga部署
    • 5.1 源码安装
      • 5.1.1 安装git和node.js
      • 5.1.2 安装konga
      • 5.1.3 配置konga
      • 5.1.4 启动konga
      • 5.1.5 界面展示

1.简介

kong基于nginx和OpenResty,是一个具有分布式、高性能、高并发、可伸缩、可扩展、提供动态负载均衡、散列负载均衡、动态配置、服务注册、服务发现、服务熔断、健康检测、故障恢复、授权认证、速率限制、缓存处理、指标监控、日志收集、插件扩展、亚毫秒级延迟等特性和功能的微服务抽象层。
kong的内部设计为插拔体系结构,kong采用插件的方式统一收纳管理这些业务通用的功能,是它们之间边界清晰、彼此隔离、互不影响。其实和nginx是一类型的

  • 默认情况下kong监听的端口
  • 8000:监听来自客户端的HTTP请求流量,并将其路由转发给上游服务器
  • 8443:监听传入的HTTPS请求流量,并将其路由转发给上游服务器
  • 8001:监听来自Kong Admin API的HTTP请求流量
  • 8444:监听来自Kong Admin API的HTTPS请求流量

2.kong的安装部署

中文文档
官方文档

2.0 直接安装

  • 只需三步
    kong下载地址
[root@zhy ~]# yum install epel-release -y
[root@zhy ~]# curl -Lo kong-2.0.0.amd64.rpm $( rpm --eval "https://download.konghq.com/gateway-2.x-centos-%{centos_ver}/Packages/k/kong-2.0.0.el%{centos_ver}.amd64.rpm")   ##下载kong安装包
[root@zhy ~]# yum install kong-2.0.0.amd64.rpm --nogpgcheck -y ##安装,关闭gpgcheck

2.1 使用yum仓库安装(下载最新版本)

 $ sudo yum update -y$ sudo yum install -y wget$ wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo$ export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`$ sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo$ sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/$ sudo yum update -y$ sudo yum install -y kong

2.2 docker安装kong

2.2.1 安装docker

2.2.2 安装kong

[root@zhy yum.repos.d]# docker pull kong:2.0
[root@zhy yum.repos.d]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
kong         2.0       fc5b7eb60cde   3 months ago   146MB

2.3 k8s安装

参考中文文档

3.kong数据库的配置

kong数据库支持PostgreSQL、Cassandra、DB-less(无数据库)三种安装模式。

3.1 PostgreSQL(实验所用数据库)

3.1.1 简介

  • PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

  • PostgreSQL完全免费

  • Postgresql是个全栈数据库,功能强大,扩展性很强
    内部集成了一些功能(比如流复制主从备份,数据库备份还原等等一些功能),就算内部没有某些功
    能也可以通过安装插件或者集成第三方的软件进行实现(现在一些市面上常用的软件,有点
    名气的都提供了对Postgresql的支持,比如Redis,citus,MongoDB,等等一些软件。)

  • Postgresql是个多进程多线程数据库
    配置文件里面可以配置多线程并行查询(使用多个子进程进行重新)

  • Postgresql对ANSI SQL支持很友好
    在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨

  • 在SQL的标准实现上要比MySQL完善,而且功能实现比较严谨
    OLTP(联机事务处理)线上请求处理
    详细:
    强调支持短时间内大量并发的小型操作(增删改查)能力,
    每个查询涉及的数据量都很小(比如几十到几百字节)
    强调事务的强一致性(想想银行转账交易,容不得差错)
    举例:“双十一”期间,可能有几十万用户在同一秒内下订单。
    后台数据库要能够并发的、以近乎实时的速度处理这些订单请求
    (如果下了订单,十几分钟还没有反应,用户肯定要骂人了)
    OLAP(联机分析处理)后台数据分析处理
    详细:
    偏向于复杂的只读查询,读取海量数据进行分析计算,查询时间往往很长
    举例:“双十一”结束,淘宝的运营人员对订单进行分析挖掘,找出一些市场规律、
    分析刷单行为等等。这种分析可能需要读取所有的历史订单进行计算,
    耗时几十秒甚至几十分钟都有可能。

  • 支持所有主流的多表连接查询的方式(如: “Nest loop”、 “hashjoin” "sort merge join"等)
    支持绝大多数的SQL语法(如: with子句)

  • PostgresQL对正则表达式支持最强、内置函数也是最丰富的数据库。字段类型还支持数组类型
    数据类型支持比较丰富。PostgreSQL不仅支持复杂的SQL,还支持大量的分析函数,非常适合做数据仓库。

  • Postgresql移动数据很方便:能平滑迁移至同属Pg生态的GreenPlum,DeepGreen,HAWK
    数据库,数据库数据可以直接移动,只要是同生态圈的数据库可以直接移库

  • Postgresql内部功能处理的很好,性能优化工具度量信息很足。
    PostgresQL数据库中有大量的性能视图,可方便地定位问题(比如:可看到正在执行的SQL,
    可通过锁视图看到谁在等待、哪条记录被锁定等), PostgresQL中设计了专门的架构和进程
    用于收集性能数据,既有物理方面的统计,也有表扫描及素引扫描方面的性能数据。

3.1.2 安装

3.1.2.1 docker下安装

[root@zhy ~]# docker pull  postgres:9.6  ##拉取数据库镜像
[root@zhy ~]# mkdir -p /opt/postgres/data  ##创建数据存储目录
[root@zhy ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
postgres     9.6       5505f5c4eb7b   2 weeks ago    200MB
kong         2.0       fc5b7eb60cde   3 months ago   146MB
[root@zhy ~]# docker network create kong-net    ##创建网络
5cb9b7e248846c80e470588df53e810ffdeec8908f8d3d2077733e8e9a465c61
[root@zhy ~]# docker run -d --name kong-database --network=kong-net  -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_PASSWORD=kong" postgres:9.6
1996ddd4ff29f6b8d5b43edc575c32a5c73afee3b8936148f9c714a11c63b3af
[root@zhy ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                    NAMES
1996ddd4ff29   postgres:9.6   "docker-entrypoint.s…"   4 seconds ago   Up 3 seconds   0.0.0.0:5432->5432/tcp   kong-database
[root@zhy ~]# docker network ls
NETWORK ID     NAME       DRIVER    SCOPE
091c8d7b1f38   bridge     bridge    local
ab75e0153def   host       host      local
5cb9b7e24884   kong-net   bridge    local
13ee44bc7ee9   none       null      local

3.1.2.2 仓库安装

官网安装方法

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL:
sudo yum install -y postgresql96-server# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
sudo systemctl enable postgresql-9.6
sudo systemctl start postgresql-9.6

3.1.3 准备数据库

#1.创建用户和数据库
[root@zhy ~]# sudo -s -u postgres   #创建一个名为 kong 的用户,并且创建一个名为 kong 的数据库。
psql
CREATE USER kong WITH PASSWORD 'kong';
CREATE DATABASE kong OWNER kong;
GRANT ALL PRIVILEGES ON DATABASE kong to kong;
#2.修改配置文件
#设置对外访问策略:
#vim /var/lib/pgsql/9.6(自己的版本号)/data/pg_hba.conf
#或者
#vi /var/lib/pgsql/data/pg_hba.conf
#在最后一行增加: host  all  all 0.0.0.0/0  md5
[root@zhy kong]# vim /var/lib/pgsql/9.6/data/pg_hba.conf #pgsql开启远程访问:
[root@zhy kong]# vim /var/lib/pgsql/9.6/data/postgresql.conf
#将 listen_address去掉注释并设置值为 '*' ,即:
#listen_addresses = '*'
[root@zhy kong]# systemctl restart postgresql-9.6.service

3.2 Cassandra

3.2.1 简介

  • 其是一个开源的分布式NoSQL数据库系统,支持结构化数据、半结构化数据、非结构化数据存储,具有高可用、高性能、高可靠、可扩展、无单点以及支持多数据中心集群部署等优点,是目前流行的一种分布式数据存储方案。

3.2.2 安装(docker安装)

官网rpm安装方式

[root@zhy ~]# docker pull cassandra:3.11
[root@zhy ~]# mkdir -p /opt/cassandra/data
[root@zhy ~]# docker run -d --name cassdra  --network=kong-net -p 9042:9042 -e CASSANDRA_BROADCAST_ADDRESS=47.116.106.14 cassandra:3.11
435e8ed120e1924525498bed4a84110852087025cf88d2249172ad45fe4f6722
[root@zhy ~]# docker ps
CONTAINER ID   IMAGE            COMMAND                  CREATED          STATUS          PORTS                                                       NAMES
435e8ed120e1   cassandra:3.11   "docker-entrypoint.s…"   5 seconds ago    Up 3 seconds    7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp   cassdra
1996ddd4ff29   postgres:9.6     "docker-entrypoint.s…"   22 minutes ago   Up 22 minutes   0.0.0.0:5432->5432/tcp  kong-database

3.3 DB-less(无数据库模式)

3.3.1 简介

通过yaml或json文件直接进行声明式配置即可
优势:
减少过多依赖:所有配置都加载并存储在内存中,不需要数据库的安装和管理
适用于CI/CD场景,配置文件可以保存在Git存储仓库中,方便使用。

3.3.2 使用测试

yaml配置文件书写参考

[root@zhy ~]# docker network create kong-net  #创建网络
[root@zhy ~]# docker volume create kong-vol #创建volume
[root@zhy ~]# docker volume inspect kong-vol  #查看逻辑卷内容
[{"CreatedAt": "2021-08-06T15:42:14+08:00","Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/kong-vol/_data","Name": "kong-vol","Options": {},"Scope": "local"}
]
[root@zhy ~]# vim /var/lib/docker/volumes/kong-vol/_data/kong.yaml
[root@zhy ~]# cat /var/lib/docker/volumes/kong-vol/_data/kong.yaml
_format_version: "1.1"   ##这一句是必须的
services:
- name: my-serviceurl: https://example.complugins:- name: key-authroutes:- name: my-routepaths:- /consumers:
- username: my-userkeyauth_credentials:- key: my-key
[root@zhy ~]# docker run -d --name kong  --network=kong-net  -v "kong-vol:/usr/local/kong/declarative"  -e "KONG_DATABASE=off"  -e "KONG_DECLARATIVE_CONFIG=/usr/local/kong/declarative/kong.yml"  -e "KONG_PROXY_ACCESS_LOG=/dev/stdout"  -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout"  -e "KONG_PROXY_ERROR_LOG=/dev/stderr"  -e "KONG_ADMIN_ERROR_LOG=/dev/stderr"  -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl"  -p 8000:8000  -p 8443:8443  -p 8001:8001  -p 8444:8444  kong:2.0
2af2ea6d8988cf2329ac352a556cfc9a79cbf9fec7f2bb77b71f9a593a75e2bd
[root@zhy ~]# curl -i http://example.com   ##测试是否成功

4.启动Kong

4.1 docker下操作

##1.准备数据库
[root@zhy ~]# docker run --rm --network=kong-net  -e "KONG_LOG_LEVEL=debug" -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database"  -e "KONG_PG_PASSWORD=kong" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database"  kong:2.0 kong migrations bootstrap## 2.启动kong
[root@zhy ~]# docker run -d --name kong --network=kong-net  \-e "KONG_DATABASE=postgres" \      ##数据类型-e "KONG_PG_HOST=kong-database" \  ##数据库的ip地址-e "KONG_PG_PORT=5432" \           ##数据库的端口-e "KONG_PG_PASSWORD=kong"  \      ##数据库密码-e "KONG_PG_DATABASE=kong"  \      ##数据库名称可以不要-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_ERROR_LOG=/dev/stderr"  \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \-e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \-p 8000:8000 \                  ##容器代理端口到外部的映射-p 8443:8443 \                  ##容器SSL代理端口到外部的映射-p 8001:8001 \                  ##容器管理端口到外部的映射-p 8444:8444 \                  ##容器SSL管理端口到外部的映射kong:2.0
29b204aa3b97b835f5bfc77824b1ab3e3796b2efce9762ce148ec272fc8f8598
[root@zhy ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED             STATUS             PORTS                                                                NAMES
29b204aa3b97   kong:2.0       "/docker-entrypoint.…"   25 seconds ago      Up 4 seconds       0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp   kong
1996ddd4ff29   postgres:9.6   "docker-entrypoint.s…"   About an hour ago   Up About an hour   0.0.0.0:5432->5432/tcp   ##3.测试是否成功
[root@zhy ~]# curl -i http://localhost:8001/


4.2 通过rpm包(实验所用)

4.2.1 修改配置文件

[root@zhy kong]# cp /etc/kong/kong.conf.default /etc/kong/kong.conf   ##复制模板
[root@zhy kong]# vim /etc/kong/kong.conf
#------------------------------------------------------------------------------
# DATASTORE
#------------------------------------------------------------------------------
database = postgres             # Determines which of PostgreSQL or Cassandra
pg_host = 10.99.35.231           # Host of the Postgres server.
pg_port = 5432                  # Port of the Postgres server.
#pg_timeout = 5000               # Defines the timeout (in ms), for connecting,# reading and writing.
pg_user = kong                  # Postgres user.
pg_password = kong                 # Postgres user's password.
pg_database = kong              # The database name to connect to.#------------------------------------------------------------------------------
# NGINX
#------------------------------------------------------------------------------
proxy_listen = 0.0.0.0:80 , 0.0.0.0:443 ssl  ##代理服务器端口调整成80和443,方便使用
admin_listen = 0.0.0.0:8001, 127.0.0.1:8444  ssl  ##值改为0.0.0.0是因为后面需要通过此Admin API进行外部访问,而127.0.0.1只能访问本地


4.2.2 启动和停止

#1.启动
[root@opsys-vm12-231 kong]# kong migrations bootstrap -c /etc/kong/kong.conf   ##kong初始化数据库
[root@opsys-vm12-231 kong]# kong start -vv   ##启动kong,可以看详细信息
[root@opsys-vm12-231 kong]# curl http://10.99.35.231    ##测试是否成功
{"message":"no Route matched with those values"}
[root@opsys-vm12-231 kong]# kong health   #也可以检测是否启动成功
nginx.......runningKong is healthy at /usr/local/kong
#2.停止
[root@opsys-vm12-231 kong]# kong quit -t 10   ##等待10s停止
[root@opsys-vm12-231 kong]# kong stop      ##直接停止


5.konga部署

  • konga是kong的一个可视化管理后台。
  • konga功能:
    管理Kong Admin API的所有对象
    支持多种数据源的导入(数据库、文件、API等)
    管理多个kong集群节点
    使用快照来备份还原和迁移kong节点
    根据健康检测监控节点和API状态
    电子邮件和异常的通知
    多个用户的登录和权限管理
    多种数据库的存储集成(如mysql、PostgreSQL、MongoDB)

5.1 源码安装

5.1.1 安装git和node.js

[root@zhy ~]# yum install git -y
[root@zhy ~]# git --version   ##验证是否安装
[root@zhy ~]# curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
[root@zhy ~]# yum install -y nodejs   ##安装nodejs
[root@zhy ~]# node -v    #检测是否安装成功

5.1.2 安装konga

[root@zhy ~]# git clone https://github.com/pantsel/konga.git   ##克隆konga 源代码
Cloning into 'konga'...
remote: Enumerating objects: 14392, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (46/46), done.
remote: Total 14392 (delta 30), reused 0 (delta 0), pack-reused 14346
Receiving objects: 100% (14392/14392), 8.30 MiB | 866.00 KiB/s, done.
Resolving deltas: 100% (10458/10458), done.
[root@zhy ~]# cd konga/   ##进入konga 目录
[root@zhy konga]# npm i     ##安装konga,其中i是install的缩写

5.1.3 配置konga

[root@zhy konga]# pwd
/root/konga
[root@zhy konga]# cp .env_example .env
[root@zhy konga]# vim .env  ##配置环境变量
[root@zhy konga]# cat .env
PORT=1337      ##端口
NODE_ENV=development    ##环境变量
KONGA_HOOK_TIMEOUT=120000   ##等待启动完成的时间(毫秒)
DB_ADAPTER=postgres     ##采用的数据库类型
DB_URI=postgresql://localhost:5432/konga   ##数据库连接字符串
KONGA_LOG_LEVEL=warn      ##日志的级别

5.1.4 启动konga

[root@zhy konga]# npm start   ##启动
> kongadmin@0.14.9 start /root/konga
> node --harmony app.jsUsing postgres DB Adapter.
Failed to connect to DB { error: Ident authentication failed for user "root"at Connection.parseE (/root/konga/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:539:11)at Connection.parseMessage (/root/konga/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:366:17)at Socket.<anonymous> (/root/konga/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:105:22)at Socket.emit (events.js:198:13)at addChunk (_stream_readable.js:288:12)at readableAddChunk (_stream_readable.js:269:11)at Socket.Readable.push (_stream_readable.js:224:10)at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)name: 'error',length: 97,severity: 'FATAL',code: '28000',detail: undefined,hint: undefined,position: undefined,internalPosition: undefined,internalQuery: undefined,where: undefined,schema: undefined,table: undefined,column: undefined,dataType: undefined,constraint: undefined,file: 'auth.c',line: '308',routine: 'auth_failed' }

##如果是生产环境,需要完成数据库的迁移,即创建表到数据库
[root@zhy konga]# node ./bin/konga.js  prepare --adapter postgres --uri postgresql://localhost:5432/konga
[root@zhy konga]# npm run production

出错解决问题


5.1.5 界面展示

kong(微服务网关的简单部署)(一)相关推荐

  1. 微服务网关总结之 —— Gateway

    前言 在上一篇我们聊了下zuul作为微服务网关的简单使用,本节继续探讨一下微服务中的另一个网关Gateway 为什么使用Gateway 既然zuul已经提供了很强大而且灵活的网关功能了,为什么还要考虑 ...

  2. 微服务网关GateWay 过滤+路由+限流

    文章目录 1 微服务网关概述 2 微服务网关微服务搭建 3 微服务网关跨域 4 微服务网关过滤器 5 微服务网关限流 5.1 思路分析 5.2 令牌桶算法 5.3 网关限流代码实现 1 微服务网关概述 ...

  3. 云原生微服务网关 Kong 和Kong 管理UI Konga快速安装攻略

    前言 在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务.甚至有时候需要对请求进行一些安全.负载均衡.限流.熔断.灰度等中间操 ...

  4. SpringCloud 微服务网关Gateway介绍及简单路由配置

    概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...

  5. 详解比springSecurity和shiro更简单优雅的轻量级Sa-Token框架,比如登录认证,权限认证,单点登录,OAuth2.0,分布式Session会话,微服务网关鉴权

    文章目录 1. 技术选型 2. Sa-Token概述 2.1 简单介绍 2.2 登录认证 2.3 权限认证 3. 功能一览 4. Sa-Token使用 4.1 引入Sa-Token依赖 4.2 Sa- ...

  6. 个推微服务网关架构实践

    作者:个推应用平台基础架构高级研发工程师 阿飞 在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求.因此,在客 ...

  7. ws配置 zuul_微服务网关 Spring Cloud Gateway

    1.  为什么是Spring Cloud Gateway 一句话,Spring Cloud已经放弃Netflix Zuul了.现在Spring Cloud中引用的还是Zuul 1.x版本,而这个版本是 ...

  8. 897-了解微服务网关

    一.前言 随着微服务的兴起,基于其业务耦合性低.负载能力强.服务边界清晰等优点,大家纷纷使用微服务架构来实现新系统或进行老系统的改造.微服务在带来诸多好处的同时,也有一些问题需要解决,比如:如何做到有 ...

  9. 百亿流量微服务网关的设计与实现

    百亿流量微服务网关的设计与实现 本文从百亿流量交易系统微服务网关(API Gateway)的现状和面临的问题出发,阐述微服务架构与 API 网关的关系,理顺流量网关与业务网关的脉络,分享 API 网关 ...

最新文章

  1. CNN网络泛化能力--Why Deep Nets Generalize?
  2. 『科技』2019全球最有前景AI公司TOP100
  3. 怎么在python下载网站内容-Python下载网页的几种方法
  4. web 表单,脚本验证
  5. [PHP] 三种运行模式 ISAPI模式 APACHE2HANDLER模式 CGI模式 FastCGI模式
  6. 利用HTML5中Geolocation获取地理位置在Google Map上定位
  7. Ext JS的模块化开发(Package)
  8. 2019年江苏省计算机一级考试题目和答案,江苏省计算机等级考试一级2019年(春)...
  9. 机器视觉LCD行业质量检测解决方案
  10. python——字典攻击
  11. cisco fabricpath 功能介绍
  12. 【集训队互测】ayq 三道题
  13. MacBook外接显示器及相关设置详解(分屏/多屏)
  14. 在Vue中使用svg格式字体图标
  15. set的用法及短语_set的用法和例句
  16. 设计一个以1秒频率闪烁的LED灯(亮灭各500ms)
  17. bind9 dlz mysql_bind9+dlz+mysql连接断开问题
  18. pandas 计算累计和及累计占比
  19. String.format()详解与遇到的问题(UnknownFormatConversionException)
  20. Leetcode 跳跃游戏

热门文章

  1. MySQL45讲(第16-21讲)
  2. 环网柜开关柜开闭所局部放电在线监测装置/MCSG-PD-6016空间超高频局放在线监测装置系统在10kV开关柜中的应用
  3. Android开发之NFC介绍及应用
  4. Windows 7 Windows Server 2008 R2 简体中文版下载 (2023 年 3 月更新)
  5. 使用html+css+js制作小米首页
  6. 服务器2000系统,windows2000服务器系统
  7. 微信分享安卓端与IOS端分享格式记录
  8. 8个有用的 CSS 技巧:视差图像,sticky footer 等等
  9. 淘宝授权登录 oauth2.0
  10. 模拟FPV-肥鲨HDO2+无牙仔2+熊猫VT5804ML1+Foxeer野火 时延测试