Muxx


  • 首页

  • 归档

  • 标签

  • 关于

  • 搜索

Composer知识整理

发表于 2019-08-11

依赖代码部署/更新

1
2
3
4
5
6
7
8
9
10
11
12
# 在vendor目录中部署依赖代码
composer install
* --dev 加载require-dev配置[默认行为]
* --no-dev 忽略require-dev配置
# 更新依赖代码
composer update
* --dev 加载require-dev配置[默认行为]
* --no-dev 忽略require-dev配置

全局安装代码库

1
2
3
4
5
6
7
8
9
10
11
# 全局安装laravel/installer
composer global require laravel/installer
* 安装后的代码位于~/.composer/vendor
* composer.json的bin中文件安装后将会在vendor/bin下创建软链
* ~/.composer/vendor/bin加入环境变量,目录内文件可作为命令行命令直
# 命令行使用laravel/installer所带命令
laravel new app

memcache

发表于 2019-08-11

说明

memcache是一个多线程缓存服务器,通常用作缓存、存储session等非重要信息的存储
php有memcache、memcached两个扩展,memcached支持CAS

启动

1
2
3
4
5
6
7
memcached -m 256 -p 11211 -l 127.0.0.1
-m 内存最大使用数
-p 监听端口 默认11211
-l 监听的ip 默认所有ip,通常设置为内网ip
-u 指定运行用户
-t 线程数 通常设定为CPU核数
-c 最大并发数

访问

1
telnet 127.0.0.1 11211
阅读全文 »

xdebug

发表于 2019-08-11

工作原理

阅读全文 »

docker技术笔记

发表于 2019-08-05

1. 开始

1.1 认识

  • Docker推荐单容器单进程的实现方式

1.2 系统命令

1
docker info #查看docker状态信息
阅读全文 »

简单配置一台DNS缓存服务器-Dnsmasq

发表于 2019-07-31

为缓解DNS超时问题,我们通常会引入DNS缓存服务器,常用的有DNSMASQ

DNSmasq的配置文件通常在/etc/dnsmasq.conf

DNSmasq数据解析流程

首先去解析/etc/hosts文件,接着去解析/etc/dnsmasq.d/下的*文件,最后去解析resolv.dnsmasq.conf(里面定义了上游DNS)

1
2
3
4
resolv-file=/etc/resolv.dnsmasq.conf
# 对于上游返回的值没有ttl时,dnsmasq给一个默认的ttl,一般不需要设置
#neg-ttl=<time>

参考

dnsmasq详细解析及详细配置

DNS超时问题排查

发表于 2019-07-30

背景

今天通过kibana查看错误日志时发现有域名解析超时情况,不应该啊,明明已经启用了dnsmasq,并且服务调用量也不大,为啥会报错呢?继续观察发现服务只有这一台机器存在域名解析超时,其他机器都没问题。紧接着使用tcpdump抓包机器的dnsmasq也是工作正常没发现什么问题,对比下这台机器的的resolv.conf文件与正常机器的resov.conf

问题机器

1
2
nameserver 127.0.0.1
options timeout:1 attempts:1 rotate

正常机器

1
2
3
4
nameserver 127.0.0.1
nameserver x.x.x.x
nameserver x.x.x.x
options timeout:1 attempts:1 rotate
阅读全文 »

常见典型问题

发表于 2019-07-25

web

DNS

DNS超时问题排查

Nginx

1.access日志中出现响应码499、502、504

502: 网关或代理从上游得到无效的响应
504: 网关或代理等待上游响应超时

2.nginx reload平滑重启时,客户端收到RST

对于开启了keepalive的nginx在重启时会断开保持的连接(不管请求是否完成),对端对断开的连接操作会收到RST包

监控

  1. 引发网络峰刺原因
  • 日志发送
  • 网络抖动
  • DNS解析

php

操作系统

TCP/IP问题

1.典型的TCP优化问题
nagle/delay ack/tck_cork
典型的TCP优化问题

网络编程

1.服务端bind绑定端口时报错Address already in use

明明服务已经停止了,却还是无法绑定,这是因为TCP套接字状态TIME_WAIT引起的。该状态在套接字关闭后保留约2~4分钟,在TIME_WAIT状态退出后,套接字删除,该地址才能被重新绑定。
解决方法: 通过SO_REUSEADDR来重用端口解决问题

reuseport 支持多个进程或线程绑定到同一端口,即创建N个reuseport套接字同时工作,当连接到来时内核会取一个套接字来处理它,这样就达到了负载均衡的目的。

网络编程IO复用之select

发表于 2019-07-24

使用select实现简单聊天室
运行服务端后,其他终端通过telnet 127.0.0.1 9999连接服务器,开始聊天

阅读全文 »
1…678…29
Mu

Mu

230 日志
53 标签
© 2021 Mu
由 Hexo 强力驱动
主题 - NexT.Pisces