zhuizhuhaomeng Blog

「记录下来,一切都会更容易理解」

Perl notes

文件开头 添加 strict 和 warnings 的检查,减少不必要的出错。 1 2 3 4 5 6 7 #!/usr/bin/env perl use v5.10.1; use strict; use warnings; #no warnings 'recursion'; #no warnings 'portable'; 正则表达式 \U 将所有匹配转换为大写...

自签名证书浏览器调试

来源 问题描述 在使用google浏览器时,有时访问某些网址时会显示网址不安全,查看后发现网络证书无效 解决方法 1、桌面找到google浏览器图标,右键,选择属性 2、在’‘目标’‘后空一格添加–ignore-certificate-errors –allow-running-insecure-content 3、重启即可 然而,有时还会出现问题,这是,需要在出现问题的网址上盲打...

多线程会产生多少额外的内存开销

默认情况下,Linux 系统为线程调用栈分配的内存大小为 8M。 我们可以通过 ulimit -s 指令调整调用栈大小。 我们也可以在编程时显示指定调用栈的大小,比如下面通过 pthread_attr_setstacksize 接口设置栈大小。 #include <pthread.h> #include <stdio.h> void* thread_...

为 OpenResty 编译 OpenTelemetry

使用 OTEL 官方的 nginx otel 模块,编译非常的麻烦,2023-05 以前一直编译不通过,不知道现在是否改善了。 目前 Nginx 官方的搞了 otel 模块,性能好而且编译更容易了。 编译步骤如下: 安装依赖 1 2 3 4 5 sudo apt-get install libc-ares2 libc-ares-dev sudo apt-get install ...

how does nginx http slice module work

我想分析一下 nginx_http_slice_module 的工作原理,因为自带的 OpenResty 不含该模块,因此需要自己编译。 在深入代码分析之前,我们需要先了解 HTTP bytes range 的请求 了解 HTTP bytes range 的原理 可以在点击 mozilla rnage request 查看详细的信息。 我们这里抽取一个请求响应的例子。 1 2 3 4 ...

Add gnu BuildID for Go program

我们可以使用 file 命令查看 ELF 文件的 BuildID。比如: 1 2 $ file /usr/bin/ls /usr/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l...

How to debug linux crash

总结 Linux 内核崩溃应该怎么调试呢?这篇文件挺好的,包含了分析的实例,https://wiki.whamcloud.com/display/LNet/Crash+course+on+Crash。 总结下来,关键的步骤就是: 要先配置 kdump 才能保存崩溃的现场。 需要安装 kernel-debuginfo 需要安装 crash 程序(当然也要 gdb) 使用...

Examples of Linux find command

1 2 3 4 5 6 7 #!/bin/bash for name in `find / -maxdepth 1 -type d -regex "/[0-9]+t-[a-z]"`; do for d in `find /16t-a/trace-pkg-db -maxdepth 2 -type d -regex ".*/\(rpms\|debs\)"`; do f...

An exmaple of ssl_certificate_by_lua

1. the lua code save the following code to file /usr/local/openresty/site/lualib/dynamic_cert.lua 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 ...

HTTP error emulator

1. 模拟 HTTP 上游服务器不响应 (网关 504 超时) 以下 Go 程序作为源站 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 44 45 package main import ( ...