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

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

 更新時間:2026年01月26日 15:29:57   作者:ICT董老師  
文章主要介紹了如何使用Ingress控制器和Nginx服務(wù)來實現(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存儲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"?,這會導(dǎo)致Ingress控制器將HTTP請求重定向到HTTPS。

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

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

訪問 ?HTTP? 端口 -> 被告知“請走 ?HTTPS?”

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

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

Ingress Controller:處理 TLS 終止和路由

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

在Kubernetes中,通常訪問服務(wù)是通過Ingress控制器提供的入口。Ingress控制器會監(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 中,我們只配置了一個 HTTP 服務(wù)器(監(jiān)聽 80 端口),并且沒有配置 SSL。因此,Pod 內(nèi)的 nginx 只會處理 HTTP 流量。而 Ingress 控制器會將 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

存儲管理-PV動態(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é)點IP 及 域名。

通過Ingress節(jié)點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選項來跳過證書驗證

當(dāng)前Ingress-controller的服務(wù)類型是NodePort,它會在每個節(jié)點上開放一個端口,所以訪問時必須帶上端口號。

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)不會跟隨重定向。所以,當(dāng)您使用curl訪問HTTP時,您看到的是308重定向的響應(yīng)體,而不是跟隨重定向后的內(nèi)容。

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

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

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

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

總結(jié)

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

相關(guān)文章

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

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

    這篇文章主要介紹了玩客云安裝青龍面板實現(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的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • k8s按需創(chuàng)建PV和使用PVC詳解

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

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

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

    而在我看來,在學(xué)習(xí)K8S之前,有必要對K8S的資源對象有個全局的概念,下面這篇文章主要給大家介紹了關(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)制部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Rainbond配置組件自動構(gòu)建部署官方文檔講解

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

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

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

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

    kubernetes 使用jq命令對資源配置查看方式

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

最新評論

南充市| 锡林浩特市| 镇坪县| 西盟| 宜兰县| 峡江县| 肃宁县| 怀安县| 安顺市| 库伦旗| 襄樊市| 平陆县| 闽清县| 慈利县| 北辰区| 宜兴市| 奉新县| 焦作市| 舟曲县| 海盐县| 荣成市| 新沂市| 磴口县| 东城区| 保德县| 沁阳市| 台前县| 日照市| 修水县| 安图县| 九龙城区| 黔江区| 芒康县| 汾阳市| 陕西省| 天峨县| 丰城市| 肃北| 蓝田县| 锦州市| 梁平县|