美文网首页
k8s dashboard nginx配置

k8s dashboard nginx配置

作者: sexy_cyber | 来源:发表于2023-07-31 14:54 被阅读0次

    主配置文件:

    目录 /etc/nginx/nginx.conf

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 4096;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        include /etc/nginx/conf.d/*.conf;
        server {
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            error_page 404 /404.html;
            location = /404.html {
            }
    
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            }
            location /challenge {
                # 保留代理之前的host 包含客户端真实的域名和端口号
                proxy_set_header    Host  $host;
                # 保留代理之前的真实客户端ip
                proxy_set_header    X-Real-IP  $remote_addr;
                # 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
                proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
                # 表示客户端真实的协议(http还是https)
                proxy_set_header X-Forwarded-Proto $scheme;
                # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
                # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
                # proxy_redirect [ default|off|redirect replacement ];
                proxy_redirect off;
                proxy_pass http://localhost:86;
            }
        }
    }
    

    自定义配置文件:

    目录 /etc/nginx/conf.d/default.conf

    server {
        listen 443 ssl;
        server_name xxx.top www.xxx.top;
    
        ssl_certificate      /etc/nginx/tls/fullchain2.pem;
        ssl_certificate_key  /etc/nginx/tls/key2.pem;
    
        root         /usr/share/nginx/html;
    
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
    
        error_page 404 /404.html;
        location = /404.html {
        }
    
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
        set $flag 0;
        if ($http_referer ~* "https://www.xxx.top") {
          set $flag "${flag}1";
        }
        if ($request_uri !~* "k8s") {
          set $flag "${flag}2";
        }
        location / {
            set $backend "http://localhost:83";
            if ($flag = "012") {
                set $backend "https://localhost:30001";
            }
            proxy_set_header    Host  $host;
            proxy_set_header    X-Real-IP  $remote_addr;
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect off;
            proxy_pass $backend;
        }
        location /lark {
            # 保留代理之前的host 包含客户端真实的域名和端口号
            proxy_set_header    Host  $host;
            # 保留代理之前的真实客户端ip
            proxy_set_header    X-Real-IP  $remote_addr;
            # 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            # 表示客户端真实的协议(http还是https)
            proxy_set_header X-Forwarded-Proto $scheme;
            # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
            # proxy_redirect [ default|off|redirect replacement ];
            proxy_redirect off;
            proxy_pass http://localhost:84;
        }
        location /test {
            # 保留代理之前的host 包含客户端真实的域名和端口号
            proxy_set_header    Host  $host;
            # 保留代理之前的真实客户端ip
            proxy_set_header    X-Real-IP  $remote_addr;
            # 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            # 表示客户端真实的协议(http还是https)
            proxy_set_header X-Forwarded-Proto $scheme;
            # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
            # proxy_redirect [ default|off|redirect replacement ];
            proxy_redirect off;
            proxy_pass http://localhost:85/;
        }
        location /challenge {
            # 保留代理之前的host 包含客户端真实的域名和端口号
            proxy_set_header    Host  $host;
            # 保留代理之前的真实客户端ip
            proxy_set_header    X-Real-IP  $remote_addr;
            # 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            # 表示客户端真实的协议(http还是https)
            proxy_set_header X-Forwarded-Proto $scheme;
            # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
            # proxy_redirect [ default|off|redirect replacement ];
            proxy_redirect off;
            proxy_pass http://localhost:86;
        }
        location /k8s {
            # 保留代理之前的host 包含客户端真实的域名和端口号
            proxy_set_header    Host  $host;
            # 保留代理之前的真实客户端ip
            proxy_set_header    X-Real-IP  $remote_addr;
            # ���个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            # 表示客户端真实的协议(http还是https)
            proxy_set_header X-Forwarded-Proto $scheme;
            # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
            # proxy_redirect [ default|off|redirect replacement ];
            proxy_redirect off;
            proxy_pass https://localhost:30001/;
        }
    }
    

    k8s dashboard的访问地址:

    https://www.xxx.top

    针对dashboard访问地址转发的核心配置:

        set $flag 0;
        if ($http_referer ~* "https://www.xxx.top") {
          set $flag "${flag}1";
        }
        if ($request_uri !~* "k8s") {
          set $flag "${flag}2";
        }
        location / {
            set $backend "http://localhost:83";
            if ($flag = "012") {
                set $backend "https://localhost:30001";
            }
            proxy_set_header    Host  $host;
            proxy_set_header    X-Real-IP  $remote_addr;
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect off;
            proxy_pass $backend;
        }
        location /k8s {
            # 保留代理之前的host 包含客户端真实的域名和端口号
            proxy_set_header    Host  $host;
            # 保留代理之前的真实客户端ip
            proxy_set_header    X-Real-IP  $remote_addr;
            # ���个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
            proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
            # 表示客户端真实的协议(http还是https)
            proxy_set_header X-Forwarded-Proto $scheme;
            # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
            # 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
            # proxy_redirect [ default|off|redirect replacement ];
            proxy_redirect off;
            proxy_pass https://localhost:30001/;
        }
    

    相关文章

      网友评论

          本文标题:k8s dashboard nginx配置

          本文链接:https://www.haomeiwen.com/subject/hdvepdtx.html