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

Nginx在胖容器中的部署流程

 更新時間:2024年04月21日 09:23:17   作者:機器瓦力  
胖容器(Fat Container)是一種容器技術(shù)的形態(tài),它在傳統(tǒng)的輕量級容器基礎(chǔ)上進行了擴展和增強,Nginx是一款高性能的HTTP和反向代理web服務(wù)器,本文將給大家介紹Nginx在胖容器中的部署流程,需要的朋友可以參考下

背景介紹

胖容器(Fat Container)是一種容器技術(shù)的形態(tài),它在傳統(tǒng)的輕量級容器基礎(chǔ)上進行了擴展和增強。胖容器不僅包含了應(yīng)用程序及其依賴項,還集成了大量的管理和調(diào)度組件,從而提供了更豐富的功能和更強大的性能。

Nginx是一款高性能的HTTP和反向代理web服務(wù)器

開發(fā)注意

制作一個完整的胖容器需要多人參與,每個人都得負責好自身編寫的Dockerfile和Shell,經(jīng)過環(huán)境測試后再合并進大的流程中。配置的讀取應(yīng)用、服務(wù)的啟動順序、依賴之間的關(guān)系都得把控,更重要的是關(guān)鍵日志的打印。

Nginx部分的編寫,也是要先用FROM nginx:latest作為基礎(chǔ)鏡像測試完這部分業(yè)務(wù)流程后再合并進主Dockerfile,爭取一遍過負責流程。

Nginx容器

編寫Dockerfile制作Nginx鏡像

# 使用官方的Nginx作為父鏡像  
FROM nginx:latest  
  
# 將業(yè)務(wù)dist復(fù)制進容器/usr/share/nginx/html/  
COPY /opt/portal/dist /usr/share/nginx/html/  
  
# 如果需要自定義Nginx配置,可以將配置文件復(fù)制到容器中  
# COPY /opt/portal/nginx.conf /etc/nginx/nginx.conf  
  
# 如果需要暴露Nginx的端口到宿主機,可以使用EXPOSE指令  
# EXPOSE 80  
  
# 自定義命令,在容器啟動時執(zhí)行  
# CMD ["nginx", "-g", "daemon off;"]

根據(jù)Dockerfile構(gòu)建Nginx鏡像docker build -t portal-nginx-image .

啟動容器

  • 宿主機和容器中做8080:80端口映射
  • 宿主機業(yè)務(wù)代碼和容器中業(yè)務(wù)代碼做卷映射(/dist)
docker run --name portal-nginx-image -d -p 8080:80 -v /opt/portal/dist:/usr/share/nginx/html/dist

業(yè)務(wù)胖容器

業(yè)務(wù)胖容器的基礎(chǔ)鏡像為centos-x86_64:centos7,最原始的操作系統(tǒng)鏡像。意味著要進行大量的工具包、依賴包安裝,配置集成。Nginx作為整個業(yè)務(wù)層的最上層,Dockerfile編寫流程放到最后面,CMD命令只會執(zhí)行最后一個。多個服務(wù)的動態(tài)配置啟動流程放在shell腳本中處理。

# 新建portal目錄
RUN mkdir /opt/portal

# 安裝nginx.tar.gz
COPY app/portal-packages/nginx.tar.gz /opt/portal

RUN tar -xvf /opt/portal/nginx.tar.gz -C /opt/portal/

RUN rm -f /opt/portal/nginx.tar.gz

# 安裝業(yè)務(wù)包dist.tag.gz
RUN rm -rf /opt/portal/nginx/html/dist

COPY app/portal-packages/dist.tar.gz /opt/portal/nginx/html/

RUN tar -xvf /opt/portal/nginx/html/dist.tar.gz -C /opt/portal/nginx/html/

RUN rm -f /opt/portal/nginx/html/dist.tar.gz

# 應(yīng)用定制nginx.conf
RUN rm -f /opt/portal/nginx/conf/nginx.conf

COPY app/portal-packages/nginx.conf /opt/portal/nginx/conf/

# 開放運行權(quán)限
RUN chmod 777 /opt/portal/nginx/sbin/nginx
CMD ["/usr/bin/app_start"]

/usr/bin/app_start中執(zhí)行/usr/bin/web_start,將啟動流程串起來

Shell腳本

Web的Shell腳本中主要用于獲取配置的端口,替換進nginx.conf中啟動Nginx服務(wù)

#!/bin/bash

RESET='\033[0m'

WARN='\033[33m'

ERROR='\033[31m'

SUCCESS='\033[32m'

# 配置文件路徑
CONF_FILE="/var/lib/fitos/config_files/transfer.conf"

# 配置參數(shù)名
CONFIG_PARAM="nginx_port"

# 使用grep查找配置行,并使用awk提取等號后面的值
CONFIG_PORT=$(grep -E "^${CONFIG_PARAM} =" "${CONF_FILE}" | awk -F'=' '{print $2}')

# 去除配置值兩邊的空白字符(如果有的話)
CONFIG_PORT=$(echo "${CONFIG_PORT}" | sed 's/^[ \t]*//;s/[ \t]*$//')

# Nginx配置文件路徑
NGINX_CONF_PATH=/opt/portal/nginx/conf/nginx.conf

# 使用sed命令替換nginx.conf中的監(jiān)聽端口
if [ -n "$CONFIG_PORT" ]; then
   sed -i "s/listen [0-9]\+ default_server;/listen ${CONFIG_PORT} default_server;/g" ${NGINX_CONF_PATH}
else
   echo -e "${WARN}未配置$CONF_FILE中nginx_port,將按照默認port:80啟動服務(wù)${RESET}"
fi

# 檢查Nginx配置文件語法是否正確
/opt/portal/nginx/sbin/nginx -t
if [ $? -ne 0 ]; then
    echo -e "${ERROR}Nginx配置文件語法錯誤,請檢查nginx.conf文件內(nèi)容${RESET}"
    exit 1
fi

# 重新加載Nginx配置  
/opt/portal/nginx/sbin/nginx  -s reload  
if [ $? -ne 0 ]; then  
    echo "Nginx重啟失敗,嘗試啟動Nginx..."  
    # 如果重新加載失敗,嘗試直接啟動Nginx  
    /opt/portal/nginx/sbin/nginx  
    if [ $? -ne 0 ]; then  
        echo -e "${ERROR}Nginx啟動失敗,請檢查錯誤日志${RESET}"  
        exit 1  
    else
        echo -e "${SUCCESS}Nginx服務(wù)啟動成功${RESET}"
    fi  
else  
    echo -e "${SUCCESS}Nginx服務(wù)重啟成功${RESET}"  
fi

最終制作出的鏡像啟動的胖容器會將所有服務(wù)拉起來,整個系統(tǒng)搭建完成。

到此這篇關(guān)于Nginx在胖容器中的部署流程的文章就介紹到這了,更多相關(guān)Nginx胖容器部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx安全防護與https部署全過程

    nginx安全防護與https部署全過程

    這篇文章主要介紹了nginx安全防護與https部署全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Rhit高效可視化Nginx日志查看工具

    Rhit高效可視化Nginx日志查看工具

    一個格式化 Nginx 日志,可快速閱讀、查看 Nginx 日志的工具。 可以每秒處理百萬行日志數(shù)據(jù),感興趣的可以了解一下
    2021-10-10
  • 詳解Nginx 虛擬主機配置的三種方式(基于IP)

    詳解Nginx 虛擬主機配置的三種方式(基于IP)

    Nginx配置虛擬主機支持3種方式主要有基于IP的虛擬主機配置,基于端口的虛擬主機配置,基于域名的虛擬主機配置。本文主要介紹了基于IP配置的實現(xiàn),感興趣的小伙伴們可以參考一下
    2018-10-10
  • Apache和Nginx的優(yōu)缺點詳解_動力節(jié)點Java學(xué)院整理

    Apache和Nginx的優(yōu)缺點詳解_動力節(jié)點Java學(xué)院整理

    Nginx和Apache一樣,都是HTTP服務(wù)器軟件,在功能實現(xiàn)上都采用模塊化結(jié)構(gòu)設(shè)計,都支持通用的語言接口。下面通過本文給大家分享Apache和Nginx比較 功能對比,感興趣的朋友參考下吧
    2017-08-08
  • Windows?系統(tǒng)下?Nginx?的配置步驟詳解

    Windows?系統(tǒng)下?Nginx?的配置步驟詳解

    Nginx?是一款功能強大的軟件,在互聯(lián)網(wǎng)領(lǐng)域有廣泛應(yīng)用,簡單來說,它就像一個聰明的交通指揮員,能讓網(wǎng)站運行得更高效、更穩(wěn)定,這篇文章主要介紹了Windows系統(tǒng)下Nginx的配置步驟詳解,需要的朋友可以參考下
    2025-06-06
  • Nginx內(nèi)存不足對Web應(yīng)用的影響及解決方法

    Nginx內(nèi)存不足對Web應(yīng)用的影響及解決方法

    本文詳細介紹了Nginx內(nèi)存不足對Web應(yīng)用的影響,包括連接和請求處理失敗、現(xiàn)有服務(wù)中斷、性能嚴重下降、Nginx進程異常、觸發(fā)操作系統(tǒng)OOMKiller、緩存失效和日志丟失或?qū)懭胧?文章還提供了診斷內(nèi)存不足的監(jiān)控工具和關(guān)鍵指標,需要的朋友可以參考下
    2026-03-03
  • 502?Bad?Gateway產(chǎn)生的原因及8個詳細的解決方法總結(jié)

    502?Bad?Gateway產(chǎn)生的原因及8個詳細的解決方法總結(jié)

    Nginx?502?Bad?Gateway的錯誤已經(jīng)遇到好幾次了,這里做一下記錄,備忘,下面這篇文章主要給大家介紹了關(guān)于502?Bad?Gateway產(chǎn)生的原因及8個詳細的解決方法,文中的介紹非常詳細,需要的朋友可以參考下
    2023-05-05
  • Nginx隱藏服務(wù)器端各類信息的方法

    Nginx隱藏服務(wù)器端各類信息的方法

    這篇文章主要介紹了Nginx隱藏服務(wù)器端各類信息的方法,包括隱藏HTTP頭信息和PHP版本號等等,需要的朋友可以參考下
    2015-07-07
  • nginx代理參數(shù)proxy_pass的實現(xiàn)

    nginx代理參數(shù)proxy_pass的實現(xiàn)

    proxy_pass參數(shù)用于配置反向代理,本文主要介紹了nginx代理參數(shù)proxy_pass的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • Nginx配置跨域請求Access-Control-Allow-Origin * 詳解

    Nginx配置跨域請求Access-Control-Allow-Origin * 詳解

    這篇文章主要給大家介紹了關(guān)于Nginx配置跨域請求Access-Control-Allow-Origin * 的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Nginx具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論

洪洞县| 武宣县| 康平县| 平陆县| 长乐市| 麦盖提县| 蒲江县| 柘城县| 象州县| 德化县| 阳春市| 根河市| 永平县| 德昌县| 来安县| 和静县| 黄大仙区| 克什克腾旗| 太仆寺旗| 华亭县| 德格县| 彝良县| 新龙县| 石城县| 太白县| 潮州市| 苗栗市| 基隆市| 德惠市| 贵州省| 栾城县| 万载县| 纳雍县| 新晃| 宁安市| 涟源市| 绥中县| 陆河县| 寿阳县| 乃东县| 汤阴县|