欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ā)注意

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

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

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,將按照默認(rèn)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配置緩存關(guān)閉的實現(xiàn)

    nginx配置緩存關(guān)閉的實現(xiàn)

    本文將介紹nginx緩存關(guān)閉,以及配置的具體步驟和示例,通過調(diào)整Nginx的配置文件,可以確保瀏覽器不會緩存網(wǎng)站的內(nèi)容,從而提高網(wǎng)站的安全性和性能
    2023-10-10
  • 在服務(wù)器上啟用HTTPS的詳細(xì)教程

    在服務(wù)器上啟用HTTPS的詳細(xì)教程

    這篇文章主要介紹了在服務(wù)器上啟用HTTPS的詳細(xì)教程,包括在AWS中生成SSL證書以及在Nginx上的相關(guān)配置等,極力推薦!需要的朋友可以參考下
    2015-06-06
  • 通過Nginx+Tomcat+Redis實現(xiàn)持久會話

    通過Nginx+Tomcat+Redis實現(xiàn)持久會話

    這篇文章主要介紹了通過Nginx+Tomcat+Redis實現(xiàn)持久會話的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-11-11
  • Nginx+Tomcat搭建高性能負(fù)載均衡集群的實現(xiàn)方法

    Nginx+Tomcat搭建高性能負(fù)載均衡集群的實現(xiàn)方法

    這篇文章主要介紹了Nginx+Tomcat搭建高性能負(fù)載均衡集群的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nginx單向認(rèn)證的安裝配置方法

    Nginx單向認(rèn)證的安裝配置方法

    這篇文章主要介紹了Nginx單向認(rèn)證的安裝配置方法,需要的朋友可以參考下
    2014-11-11
  • 高性能WEB開發(fā) nginx HTTP服務(wù)器篇

    高性能WEB開發(fā) nginx HTTP服務(wù)器篇

    新產(chǎn)品為了效果,做的比較炫,用了很多的圖片和JS,所以前端的性能是很大的問題,分篇記錄前端性能優(yōu)化的一些小經(jīng)驗。
    2010-05-05
  • Nginx rewrite跳轉(zhuǎn)應(yīng)用場景詳解

    Nginx rewrite跳轉(zhuǎn)應(yīng)用場景詳解

    這篇文章主要介紹了Nginx rewrite跳轉(zhuǎn)應(yīng)用場景詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • nginx主動健康檢查功能實現(xiàn)

    nginx主動健康檢查功能實現(xiàn)

    nginx_upstream_check_module是一個Nginx的第三方模塊,它可以實現(xiàn) Nginx的主動健康檢查功能,本文將介紹一個基于 Nginx 的第三方模塊 nginx_upstream_check_module,它可以實現(xiàn) Nginx 的主動健康檢查功能,可以幫助我們更加有效地管理后端服務(wù)器,需要的朋友可以參考下
    2023-05-05
  • 使用nginx搭建creates.io鏡像的教程詳解

    使用nginx搭建creates.io鏡像的教程詳解

    在Rust開發(fā)中,經(jīng)常需要使用Cargo從crates.io下載依賴,而國內(nèi)幾乎沒有好用的crates.io鏡像,使用本文就來使用使用nginx搭建creates.io鏡像吧
    2023-12-12
  • Nginx+Lua+Redis構(gòu)建高并發(fā)Web應(yīng)用

    Nginx+Lua+Redis構(gòu)建高并發(fā)Web應(yīng)用

    使用Nginx+Lua+Redis來構(gòu)建高并發(fā)Web應(yīng)用,Curl請求Nginx,Nginx通過Lua查詢Redis,返回json數(shù)據(jù)。
    2013-10-10

最新評論