首页 > 系统相关 >通过nginx来验证k8s中externalTrafficPolicy策略

通过nginx来验证k8s中externalTrafficPolicy策略

时间:2024-03-19 17:22:32浏览次数:24  
标签:set ssl header request externalTrafficPolicy nginx proxy k8s

过nginx来验证k8s中externalTrafficPolicy策略

域名---> 172.16.80.32(域名解析反向代理) -----> nginx-pod1(Local模式,模拟前端代理到nginx2-pod2) -----> nginx2-pod2(Cluster模式,实际后端服务)

nginx的日志格式

    log_format main  '"$remote_addr" "$remote_user" "$time_local" "$status" "$request" '
                     '"$http_referer" "$body_bytes_sent" "$bytes_sent" "$connection" '
                     '"$connection_requests" "$content_type" "$cookie_jsessionid" '
                     '"$http_x_forwarded_for" "$limit_rate" "$proxy_add_x_forwarded_for" '
                     '"$remote_port" "$request_body_file" "$request_filename" "$request_length" '
                     '"$request_time" "$host" "-" "-" "$upstream_addr" '
                     '"$upstream_response_time" "$args" "$http_user_agent" "$http_request_from" "$upstream_status
"';

日志结果:

nginx-6dc9796684-zhvcx 的日志,获取到客户端ip
nginx2-755998b95f-fh26v 的日志,获取到上一层nginx的pod ip

部署情况

模拟前端nginx-svc(Local)

模拟后端nginx2-svc

虚拟主机配置nginx(172.16.80.32)文件tmp.conf

upstream  tmp32653 {
          server 172.16.80.53:32653  weight=10 max_fails=3  fail_timeout=30s;
              }
server {
    listen       80;
    listen       443 ssl;
    server_name  tmp.shengydt.com;

    ssl_certificate /usr/local/nginx/cert/shengydt.com.pem;
    ssl_certificate_key /usr/local/nginx/cert/shengydt.com.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache builtin:1000 shared:SSL:10m;
    ssl_buffer_size 1400;
    add_header Strict-Transport-Security max-age=15768000;
    ssl_stapling on;
    ssl_stapling_verify on;
    if ($ssl_protocol = "") { return 301 https://$host$request_uri; }    

    # 日志中时间戳设置固定格式:2023-09-28 15:57:01
    if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") {
                set $year $1;
                set $month $2;
                set $day $3;
                set $hour $4;
                set $minutes $5;
                set $seconds $6;
    }


    location / {
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_pass http://tmp32653;
                proxy_set_header X-Forwarded-Proto $scheme;
               access_log   /prod-meta-logs/nginx-logs/tmp.access.log json;
               error_log    /prod-meta-logs/nginx-logs/tmp.error.log ;
}


}

标签:set,ssl,header,request,externalTrafficPolicy,nginx,proxy,k8s
From: https://www.cnblogs.com/zoujiaojiao/p/18083489

相关文章

  • 解决部署在k8s上spring cloud gateway 无故假死的情况
    解决部署在k8s上springcloudgateway无故假死的情况线上发现gateway会无故假死,测试环境使用jmeter几分钟后,gateway也会复现假死的情况开始排查获取容器列表kubectlgetpod-owide进入gatewaykubectlexec-itgateway-7dbc5d8d6d-wtbs5--bash将jdk拷贝进容器......
  • ubuntu22.04部署django+uwsgi+nginx上线站点
    系统默认是3.10的python版本,不支持pip,需要先安装pip常用的命令pipinstallsomepackage-ihttps://pypi.doubanio.com/simple/#pip安装使用豆瓣源比较快sudochownubuntu:ubuntu/opt/wwwroot/mysite-R#可更改文件夹对应的用户,避免总是提示无权限被禁止项目默认部署在/o......
  • Windows环境安装Nginx
    1.下载点击跳转下载:Nginx下载选择Stableversion(稳定版) 2.将下载的压缩包,解压到日常使用的目录 3.修改conf/nginx.conf文件默认端口号,默认是80,将端口改为自己需要的端口 ......
  • K8s(Kubernetes)-Tips
    K8S中文官网https://www.kubernetes.org.cn/Kubernetes集群组件结构一个kubernetes集群主要是由控制节点(master)、**工作节点(node)**构成,每个节点上都会安装不同的组件。master:集群的控制平面,负责集群的决策(管理)ApiServer:资源操作的唯一入口,接收用户输......
  • K8S集合
    1.什么是k8s,有什么用处?k8s是容器化编排管理工具。可以用来完成以下一些主要功能:基于容器的应用部署、维护和滚动升级。负载均衡和服务发现:跨机器和跨地区的集群调度。自动伸缩。广泛的Volume支持。插件机制保证扩展性2.工作节点NodeNode是K8S集群中的工作负载节点,每个No......
  • 猫头虎分享已解决Bug || Error: ImagePullBackOff (K8s)
    博主猫头虎的技术世界......
  • [nginx] 基于docker安装nginx
    0序环境信息OS:CENTOS7.9Docker:25.0.4Nginx:1.24.01安装步骤Step0安装docker略。可参见:[Docker]基于CENTOS7安装Docker环境-博客园/千千寰宇基于Docker安装MYSQL/Step1安装docker环境-博客园/千千寰宇Step1下载nginx镜像下载nginx镜......
  • 安装 nginx-yum
    OperatingSystem:AlibabaCloudLinux3(SoaringFalcon)nginx-1.24.0-1.el7.ngx.x86_64.rpmnginx1.20.1--- 序章http://nginx.org【2024-02-27  unit-1.32.0versionhasbeenreleased,featuringtheWebAssemblyComponentModelandUnitvariablesaccessfr......
  • 配置 Nginx
    Nginx是一种轻量级、高性能、低内存的Web服务器和反向代理服务器。1.正向代理和反向代理正向代理:客户端向服务器发送请求,并指定目标服务器地址,然后由代理服务器和原始服务器通信,转交请求并获得响应,再返回给客户端。正向代理隐藏了真实的客户端,使真实的客户端对服务器不可见......
  • nginx访客日志
    访客日志处理日志模块的官网教程https://nginx.org/en/docs/http/ngx_http_log_module.htmlnginx日志变量的格式,作用找到nginx所有的内置变量,以及作用解释https://nginx.org/en/docs/https://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_addr当你的ng......