最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8s部署Nginx集群,通過Ingress實(shí)現(xiàn)HTTPS域名訪問過程

 更新時(shí)間:2026年01月26日 15:29:57   作者:ICT董老師  
文章主要介紹了如何使用Ingress控制器和Nginx服務(wù)來實(shí)現(xiàn)HTTP到HTTPS的強(qiáng)制重定向,并解釋了Ingress控制器如何處理TLS終止和流量路由,通過配置Ingress和Nginx服務(wù),可以確保所有流量都通過HTTPS訪問,從而提高安全性

架構(gòu)

客戶端 → Ingress Controller (處理 TLS) → Service: nginx → Nginx Pod (提供靜態(tài)內(nèi)容)

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx

我們創(chuàng)建的 Service 類型默認(rèn)是 ClusterIP,Ingress 控制器可以通過 ClusterIP 訪問到 Pod。

secret存儲(chǔ)TLS證書

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=dong.nginx.com"
kubectl create secret tls nginx-ssl-cert --cert=tls.crt --key=tls.key --namespace=default

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
  tls:
  - hosts:
    - dong.nginx.com
    secretName: nginx-tls-secret
  rules:
  - host: dong.nginx.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80

在Ingress配置中,設(shè)置了注解?nginx.ingress.kubernetes.io/force-ssl-redirect: "true"?,這會(huì)導(dǎo)致Ingress控制器將HTTP請(qǐng)求重定向到HTTPS。

我們使用的是?kubernetes.io/ingress.class: "nginx"?,這通常是由NGINX Ingress控制器處理的。NGINX Ingress控制器默認(rèn)會(huì)監(jiān)聽80和443端口,并且當(dāng)你配置了TLS和強(qiáng)制重定向時(shí),80端口的請(qǐng)求會(huì)被重定向到443。

在host字段中指定了域名,需要通過域名才可以訪問(只有Host頭匹配的請(qǐng)求才會(huì)被路由到此服務(wù),如果直接訪問Ingress Controller的IP,由于缺少Host頭,請(qǐng)求不會(huì)被正確路由)。

訪問 ?HTTP? 端口 -> 被告知“請(qǐng)走 ?HTTPS?”

返回308永久重定向,說明HTTP被強(qiáng)制跳轉(zhuǎn)到HTTPS,這是常見的做法。服務(wù)器明確告訴客戶端:“你訪問的這個(gè) ?http? 地址已經(jīng)不再使用了,請(qǐng)永久地使用另一個(gè)地址(通常是 ?https? 地址)來訪問我。”這是現(xiàn)代Web服務(wù)的標(biāo)準(zhǔn)做法,為了安全,強(qiáng)制將不安全的 ?HTTP? 協(xié)議跳轉(zhuǎn)到安全的 ?HTTPS? 協(xié)議。

308 重定向需要客戶端(如瀏覽器)自動(dòng)跟隨重定向,但 curl 默認(rèn)不會(huì)自動(dòng)跟隨重定向。

Ingress Controller:處理 TLS 終止和路由

通常 Ingress 控制器會(huì)使用它自己的 TLS 證書,而 Pod 內(nèi)部的 nginx 不需要配置 SSL,可以只作為靜態(tài)文件服務(wù)器,因?yàn)?Ingress 控制器會(huì)處理 SSL 終止。

在Kubernetes中,通常訪問服務(wù)是通過Ingress控制器提供的入口。Ingress控制器會(huì)監(jiān)聽80和443端口(或者你配置的其他端口),然后根據(jù)Ingress規(guī)則路由流量。

configmap.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
data:
  default.conf: |
    server {
      listen 80;
      server_name _;
      root /usr/share/nginx/html;
      index index.html;

      location / {
        try_files $uri $uri/ =404;
      }

      autoindex off;

      location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public";
      }
    }

在 ConfigMap 中,我們只配置了一個(gè) HTTP 服務(wù)器(監(jiān)聽 80 端口),并且沒有配置 SSL。因此,Pod 內(nèi)的 nginx 只會(huì)處理 HTTP 流量。而 Ingress 控制器會(huì)將 HTTPS 流量終止并轉(zhuǎn)發(fā)給 Service(即 Pod)的 80 端口。

nginx-pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: html-pvc
spec:
  storageClassName: nfs-client
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

存儲(chǔ)管理-PV動(dòng)態(tài)供給見–有狀態(tài)應(yīng)用-MySQL主從復(fù)制集群

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-web-cluster
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        volumeMounts:
        - name: config
          mountPath: /etc/nginx/conf.d
        - name: html
          mountPath: /usr/share/nginx/html
      volumes:
      - name: config
        configMap:
          name: nginx-config
      - name: html
        persistentVolumeClaim:
          claimName: html-pvc

用戶訪問

訪問前需要在用戶的主機(jī)上修改hosts文件進(jìn)行域名解析,添加:Ingress節(jié)點(diǎn)IP 及 域名。

通過Ingress節(jié)點(diǎn)IP地址(kubectl get ingress)加上Ingress控制器的Service上(kubectl get svc -n ingress-nginx)的暴露端口,用戶可以從集群外部訪問Ingress控制器。(這里需要通過域名訪問或者攜帶主機(jī)頭,如下:)

curl -H "Host:dong.nginx.com" https://192.168.1.73:31237 -k
#證書是自簽名的,不在curl的CA信任庫中,需要通過-k或--insecure選項(xiàng)來跳過證書驗(yàn)證

當(dāng)前Ingress-controller的服務(wù)類型是NodePort,它會(huì)在每個(gè)節(jié)點(diǎn)上開放一個(gè)端口,所以訪問時(shí)必須帶上端口號(hào)。

1.http://dong.nginx.com:31441? → 308 重定向到 HTTPS

2.https://dong.nginx.com:31237? → Ingress → Service:nginx → Nginx Pod → 返回網(wǎng)頁內(nèi)容

curl默認(rèn)不會(huì)跟隨重定向。所以,當(dāng)您使用curl訪問HTTP時(shí),您看到的是308重定向的響應(yīng)體,而不是跟隨重定向后的內(nèi)容。

在瀏覽器中訪問http://dong.nginx.com:31441,瀏覽器會(huì)自動(dòng)重定向到HTTPS并顯示頁面,用戶不會(huì)看到308的頁面。

# 1. 查看重定向信息
curl -I http://dong.nginx.com:31441

# 2. 自動(dòng)跟隨重定向獲取最終內(nèi)容
curl -L http://dong.nginx.com:31441

# 3. 或者使用詳細(xì)模式查看整個(gè)過程
curl -v -L http://dong.nginx.com:31441

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 玩客云安裝青龍面板實(shí)現(xiàn)京東簽到薅羊毛功能

    玩客云安裝青龍面板實(shí)現(xiàn)京東簽到薅羊毛功能

    這篇文章主要介紹了玩客云安裝青龍面板實(shí)現(xiàn)京東簽到薅羊毛,本人準(zhǔn)備的服務(wù)器就是玩客云,只需運(yùn)行一些常用的?docker?容器就行,需要的朋友可以參考下
    2022-05-05
  • ragflow?k8s部署過程圖文詳解

    ragflow?k8s部署過程圖文詳解

    這篇文章主要介紹了ragflow?k8s部署詳細(xì)過程,本文將使用ragflow-0.18.0,來進(jìn)行演示詳細(xì)部署過程,需要的朋友可以參考下
    2025-04-04
  • 常見Kubernetes kubectl命令使用詳解

    常見Kubernetes kubectl命令使用詳解

    這篇文章主要為大家介紹了常見Kubernetes kubectl命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法

    某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法

    這篇文章主要介紹了某集團(tuán)任意文件下載到虛擬主機(jī)getshell的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • k8s按需創(chuàng)建PV和使用PVC詳解

    k8s按需創(chuàng)建PV和使用PVC詳解

    Kubernetes中,PV和PVC用于管理持久存儲(chǔ),StorageClass實(shí)現(xiàn)動(dòng)態(tài)PV分配,PVC聲明存儲(chǔ)需求并綁定PV,通過kubectl驗(yàn)證狀態(tài),注意回收策略和綁定模式
    2025-09-09
  • K8s創(chuàng)建資源的兩種方法實(shí)例

    K8s創(chuàng)建資源的兩種方法實(shí)例

    而在我看來,在學(xué)習(xí)K8S之前,有必要對(duì)K8S的資源對(duì)象有個(gè)全局的概念,下面這篇文章主要給大家介紹了關(guān)于K8s創(chuàng)建資源的兩種方法,需要的朋友可以參考下
    2022-05-05
  • kubernetes-1.25.6二進(jìn)制部署方式

    kubernetes-1.25.6二進(jìn)制部署方式

    這篇文章主要介紹了kubernetes-1.25.6二進(jìn)制部署方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解

    Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解

    這篇文章主要為大家介紹了Rainbond配置組件自動(dòng)構(gòu)建部署官方文檔講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • Rainbond部署組件Statefulset的使用官方文檔

    Rainbond部署組件Statefulset的使用官方文檔

    這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • kubernetes 使用jq命令對(duì)資源配置查看方式

    kubernetes 使用jq命令對(duì)資源配置查看方式

    這篇文章主要介紹了kubernetes 使用jq命令對(duì)資源配置查看方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評(píng)論

克什克腾旗| 婺源县| 浙江省| 元朗区| 黄浦区| 安康市| 淅川县| 平果县| 宜章县| 连平县| 鹤峰县| 云南省| 新宾| 武强县| 阜城县| 兴安盟| 四平市| 磐安县| 疏附县| 太仓市| 乌审旗| 来安县| 丰镇市| 秭归县| 通渭县| 义乌市| 河南省| 开封县| 大连市| 高密市| 烟台市| 宕昌县| 依兰县| 岳普湖县| 武宁县| 澄江县| 洪江市| 攀枝花市| 霍城县| 肇州县| 霍邱县|