无题

  • laravel-后台API token管理、用户管理、权限管理、操作日志、文章管理、分类管理
    ~~ vue后台模板(使用已开源的) ~~
  • socket、swoole、easyswoole
  • phpmywind改造成自适应的(html-php混编)
  • mysql-数据优化、索引优化、事务、锁机制
  • redis 队列等场景使用
  • python 爬数据
  • go

vue后台模板(使用已开源的)

todo-list

  • 用docker部署配置nginx负载均衡

  • 用docker部署mysql主从同步

  • 用docker部署mysql读写分离

  • 用docker部署集群mysql

  • 用docker部署集群redis

  • redis备份与恢复

  • mac多php、mysql、nginx、apache版本安装

  • thinkpad共享文件夹-mac映射共享文件夹

  • vscode远程编辑配置

  • laravel-admin 参考 部署 moell-peng/mojito

  • easyswoole-长连接认证-laravel的各种认证对比

问题

  • 如何查看(设置)PHP当前启动了多少个进程、线程、协程

docker设置镜像存储位置

方式1

  • [x] 测试

step1: 停止docker服务
step2: 创建软连接

mv /var/lib/docker /root/data/docker
ln -s /root/data/docker /var/lib/docker

方式2

修改镜像和容器的存放路径, Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致,在 Ubuntu 中的位置是:/etc/default/docker,在 CentOS 中的位置是:/etc/sysconfig/docker

如果是 CentOS 则添加下面这行:

OPTIONS=--graph="/root/data/docker" --selinux-enabled -H fd://
如果是 Ubuntu 则添加下面这行(因为 Ubuntu 默认没开启 selinux):

OPTIONS=--graph="/root/data/docker" -H fd://
# 或者
DOCKER_OPTS="-g /root/data/docker"

相关资料

Docker配置本地镜像与容器的存储位置

vue打包上传服务器页面没有更新

nginx配置禁用缓存

location /myApp/ {
  root /www/webproject;
  try_files $uri @index;
}

location @index {
  root /www/webproject;
  add_header Cache-Control no-store;
  expires 0;
  try_files /crmwap/index.html =404;
}

index.html html标签禁用缓存

<meta http-equiv="pragram" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0">

vue webpack 配置文件版本

build--webpack .prod.conf.js

const  Version = new Date().getTime(); //定义一个时间作为版本号。

 output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].[chunkhash]'+ Version+'.js'),
    chunkFilename: utils.assetsPath('js/[id].[chunkhash]'+Version +'.js')
  }

相关资料

vue项目打包之浏览器存在缓存问题
vue项目如何让网页端浏览器不缓存自动更新

influxdb

概念 MySQL InfluxDB
数据库(同) database database
表(不同) table measurement
列(不同) column tag(带索引的,非必须)、field(不带索引)、timestemp(唯一主键)
  • tag 只能为字符串类型
  • field 类型无限制
  • 不支持join
  • 支持连续查询操作(汇总统计数据):CONTINUOUS QUERY
  • 配合Telegraf服务(Telegraf可以监控系统CPU、内存、网络等数据)
  • 配合Grafana服务(数据展现的图像界面,将influxdb中的数据可视化)

开启认证

[http]
  # Determines whether HTTP endpoint is enabled.
  enabled = true

  # Determines whether user authentication is enabled over HTTP/HTTPS.
  auth-enabled = true

创建数据库和用户

Tip: 如果提示 unable to parse authentication credentials 命令行输入auth用户和密码

命令行输入influx 进入数据库

创建管理员 create user admin with password 'XXXXXX' with all privileges;
创建数据库 CREATE DATABASE mydb

常用操作

-- 查看所有的数据库
show databases;
-- 使用特定的数据库
use database_name;
-- 查看所有的measurement
show measurements;
-- 查询10条数据
select * from measurement_name limit 10;
-- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式
-- 或可以在连接数据库的时候,直接带该参数
influx -precision rfc3339
-- 查看一个measurement中所有的tag key 
show tag keys
-- 查看一个measurement中所有的field key 
show field keys
-- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies;

http方式请求 http://192.168.31.50:8086/query?u=admin&p=admin&q=SHOW+DATABASES

相关资料

influxdb.conf 官方
influxdb.conf 1.8 配置模板
命令行简单使用

InfluxDB

Docker容器监控系统平台

cAdvisor+InfluxDB+Grafana + prometheus

Tip: 1.8 已把简单的管理界面移除了

部署

cadvisor+influxdb 配置

配置成功后会写入数据自动创建measurements如下

  • cpu_usage_per_cpu
  • cpu_usage_system
  • cpu_usage_total
  • cpu_usage_user
  • fs_limit
  • fs_usage
  • load_average
  • memory_usage
  • memory_working_set
  • rx_bytes
  • rx_errors
  • tx_bytes
  • tx_errors

grafana+influxdb 配置

相关资料

influxdb使用

influxdb.conf 官方
influxdb.conf 1.8 配置模板
命令行简单使用

Chronograf-influxdb-ui 1.8

influxdb.conf 说明
influxdb(UI Chronograf)+grafana使用笔记
Sentinel + InfluxDB + Chronograf 实现监控大屏

grafana配置读取一个容器内存使用的例子
grafana配置教程

阿里云RAM之为指定用户划分指定的服务器ECS

示例1:授权RAM用户管理2台指定的ECS实例。
假设您的账号购买了多个实例,而作为RAM管理员,您希望仅授权其中的2个实例给某个RAM用户。实例ID分别为i-001、i-002。

Tip: RAM子用户还是可以看到全部服务器

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": [
                  "acs:ecs:*:*:instance/i-001", 
                  "acs:ecs:*:*:instance/i-002"
                  ]
    },
    {
      "Action": "ecs:Describe*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

利用标签对ECS实例进行分组授权

Tip: 其中5个实例绑定一对标签,标签键是team,标签值是dev

{
    "Statement": [
    {
        "Action": "ecs:*",
        "Effect": "Allow",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ecs:tag/team": "dev"
            }
        }
    },
    {
        "Action": "ecs:DescribeTag*",
        "Effect": "Allow",
        "Resource": "*"
    }
    ],
    "Version": "1"
}

使用RAM对ECS进行权限管理
利用标签对ECS实例进行分组授权
Policy 基本元素

redis 应用场景

String 场景

  • 存储对象
  • 分布式锁
  • 计数器(浏览量)
  • 集群session共享
  • 分布式系统全局序列号(INCBY orderid) 维护数据主键自增id

hmash 场景

  • 存储对象 (hmset user {userid}:name zhang {userid}:balance 1111)
  • 购物车

list 场景

  • stack(栈)
  • queue 队列
  • 消息流

set 场景

  • 抽奖
  • 点赞 收藏
  • 关注模型
  • 好友关系

相关资料

诸葛老师-一线互联网公司Redis应用场景及实例分析全集