2024-2-28 myluzh
Nginx
0x01 日志格式化输出
root@iZbp12bkuvg20e1j3y9gtvZ:/etc/logrotate.d# cat /etc/nginx/nginx.conf
http {
# ...
log_format main escape=none
'$remote_addr - $remote_user [$time_iso8601] "$request_method $scheme://$host$request_uri" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" time=$request_time upstream_addr=$upstream_addr'
'\n $request_body';
access_log /var/log/nginx/access.log main;
error_log /var/...
阅读全文>>
标签: nginx logging logrotate log_format access_log error_log
评论(0)
(319)
2024-2-28 myluzh
NOTE
0x01 解决方案
将以下代码块附加在叶子证书(第一个 BEGIN CERTIFICATE 起到第一个 END CERTIFICATE 止)后作为证书链:
-----BEGIN CERTIFICATE-----
MIIFjDCCA3SgAwIBAgIQfx8skC6D0OO2+zvuR4tegDANBgkqhkiG9w0BAQsFADBM
MSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xv
YmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjAeFw0yMzA3MTkwMzQzMjVaFw0y
NjA3MTkwMDAwMDBaMFUxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWdu
IG52LXNhMSswKQYDVQQDEyJHbG9iYWxTaWduIEdDQyBSNiBBbHBoYVNTTCBDQSAy
MDIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA00Jvk5ADppO0rgDn
j1M14XIb032Aas409JJFAb8c...
阅读全文>>
标签: ssl AlphaSSL 证书链 CA
评论(0)
(539)
2024-2-28 myluzh
CLOUD
0x01 获取方法介绍
当使用ALB监听转发流量时,您可通过HTTP头部的X-Forwarded-For字段获取客户端真实IP地址。
七层负载均衡(HTTP或HTTPS协议)支持在HTTP头部的X-Forwarded-For字段保留客户端真实IP信息,服务器进行相应配置后即可获取到客户端真实IP地址。
X-Forwarded-For字段格式如下:
X-Forwarded-For: <客户端真实IP, 代理服务器1-IP, 代理服务器2-IP,...>
当使用此方式获取客户端真实IP时,获取的第一个地址就是客户端真实IP。
0x02 操作步骤
步骤一:检查监听已开启通过X-Forwarded-For获取功能
1、登录应用型负载均衡ALB控制台。
2、在顶部菜单栏,选择实例所属的地域。
3、在实例页面,找到目标实例,单击实例ID。
4、在实例详情页面,单击监听页签,找到目标监听,单击监听ID。
5、在监听详情页面,查看到附加HTTP头字段包括开启通过X-Forwarded-For头字段获取来访者客户端IP。
说明:ALB默认开启通过X-Forwarded-For头字段获取客户端真实IP功...
阅读全文>>
标签: 日志 nginx 负载均衡 格式化 阿里云 ALB
评论(0)
(416)
2024-2-23 myluzh
Kubernetes
0x00 前言
最近遇到一个问题:客户端上传大一点的文件,http就直接响应Status Code: 413 Request Entity Too Large
由于k8s ingress的上游还有一个nginx,所以先判断是不是nginx限制了上传大小,
nginx配置文件client_max_body_size没有问题,那就是ingress-nginx限制了大小,所以就有了下面这篇文章...
root@iZbp12bkuvg20e1j3y9gtvZ:/etc/nginx/conf.d# grep "client_max_body_size" *.conf
prd-all.conf: client_max_body_size 100m;
test-all.conf: client_max_body_size 100m;
0x01 单个Ingress资源调整请求体大小限制
在Kubernetes中,当使用Nginx Ingress Controller时,若需要调整请求体大小限制,您可以直接在Ingress资源中添加相应的annotations。
1、编辑Ingress资源...
阅读全文>>
标签: nginx Ingress client_max_body_size annotations proxy-body-size
评论(0)
(707)
2024-2-22 myluzh
Docker
0x01 概述
Docker 分阶段构建是指在 Dockerfile 中使用多个 FROM 指令来分割构建过程,将整个构建过程分为多个阶段。每个阶段可以有自己的基础镜像,执行特定的构建步骤,并且可以从前一个阶段复制构建结果。最终只有最后一个阶段的构建结果会被保留在最终的镜像中,其它阶段的中间产物不会被包含在最终的镜像中。
分阶段构建的优点包括:
减小镜像大小:通过将构建过程分解为多个阶段,可以避免将构建工具和中间产物包含在最终的镜像中,从而减小镜像的大小。
加快构建速度:每个阶段可以并行执行,节省构建时间。
更好的可维护性:分阶段构建可以更清晰地组织构建过程,使得 Dockerfile 更易于阅读和维护。
0x02 示例
下面是一个使用 Docker 分阶段构建 Python 应用的示例:
# 第一阶段:构建依赖环境
FROM python:3.8 AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r ...
阅读全文>>
标签: docker 多阶段 构建 builder
评论(0)
(271)
2024-2-17 myluzh
Kubernetes
0x01 故障描述
ranhcer UI 无法进入,查看logs提示X509 certificate has expired or is not yet valid
# 查看 rancher agent 日志
root@iZbp1bddlmdujngbc11omnZ:~# docker logs -f --tail 10 b109
time="2024-02-17T03:26:04Z" level=fatal msg="Server certificate is not valid, please check if the host has the correct time configured and if the server certificate has a notAfter date and time in the future. Certificate information is displayed above. error: Get \"https://172.30.233.87:8443\": x509: certificate has expired or is not yet valid: curren...
阅读全文>>
标签: rancher
评论(0)
(366)