Myluzh Blog

Nginx性能优化笔记

2024-9-3 myluzh NOTE

0x01 Nginx 工作进程数量 Nginx 的 worker_processes 参数设置了工作进程的数量。通常建议将其设置为 CPU 核心数的数量或核心数的两倍。可以使用以下命令查看 CPU 核心数: grep ^processor /proc/cpuinfo | wc -l 配置示例: worker_processes 4; 0x02 CPU 亲和力设置 worker_cpu_affinity 参数用于指定每个工作进程绑定的 CPU 核心。根据 CPU 核心数进行配置: 对于 4 核 CPU: worker_cpu_affinity 0001 0010 0100 1000; 对于 8 核 CPU: worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 注: worker_processes 最多设置为 8,超过这个数值可能不会带来性能提升。 0x03 最大打开文件数 worker_rlimit_nofile 用于设置 Nginx 进程可以打开的最大文件数。通常设置为 ulimit -...

阅读全文>>

标签: nginx 性能优化笔记

评论(0) (122)

Nginx日志格式化输出,日志切割

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) (279)

阿里云负载均衡ALB获取客户端真实IP

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) (371)

K8S Ingress-nginx修改上传大小限制

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) (527)

K8S ingress 传递用户真实IP

2024-1-16 myluzh Kubernetes

0x01 前言 今天发现后端获取到的用户客户端ip都是内网地址 172.29.241.163。 访问逻辑为:用户访问->nginx->k8s-ingress->后端pod。 但是后端pod获取客户端的ip一直是172.29.241.163,原来这个ip的ingress的上游nginx的ip。 # nginx节点 root@iZbp12bkuvg20e1j3y9gtvZ:/etc/nginx/conf.d# ifconfig | grep 172 inet 172.29.241.163 netmask 255.255.240.0 broadcast 172.29.255.255 # nginx反向代理到k8s-ingress的配置文件 root@iZbp12bkuvg20e1j3y9gtvZ:/etc/nginx/conf.d# cat prd-all.conf upstream prd-nginx-server { server 172.29.241.160:80; server 172.30.82.215:80; keepalive 10; ...

阅读全文>>

标签: k8s nginx Ingress ip use-forwarded-headers X-Real-IP X-Forwarded-For

评论(0) (440)

Nginx开启目录访问

2024-1-6 myluzh Nginx

参数的解释: autoindex_exact_size off;: 不显示文件的确切大小,而是显示一个大概的大小(例如 "49k" 而不是 "49152" 字节)。 autoindex on;: 开启目录列表功能。 autoindex_localtime on;: 显示文件的本地时间,而不是 GMT 时间。 charset utf-8;: 设置目录列表的字符集为 UTF-8。 location /some/directory/ { autoindex on; autoindex_exact_size off; autoindex_localtime on; charset utf-8; }

阅读全文>>

标签: nginx autoindex 目录访问

评论(0) (201)