国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用NGINX Docker鏡像構(gòu)建和運(yùn)行Web應(yīng)用程序的教程

在本教程中,探索如何使用NGINX Docker鏡像在Docker等平臺(tái)上構(gòu)建和運(yùn)行web應(yīng)用程序!

Docker是一個(gè)引人注目的平臺(tái),特別適合打包和運(yùn)行Web應(yīng)用程序,尤其是與云平臺(tái)提供的眾多平臺(tái)即服務(wù)(PaaS)方案配對(duì)使用。NGINX一直為DevOps團(tuán)隊(duì)提供Linux上托管Web應(yīng)用程序的能力,并且還提供了官方的Docker鏡像作為自定義Web應(yīng)用程序的基礎(chǔ)。

在本文中,我將解釋DevOps團(tuán)隊(duì)如何使用NGINX Docker鏡像來(lái)構(gòu)建和運(yùn)行Web應(yīng)用程序。

開(kāi)始使用基礎(chǔ)鏡像

NGINX是一個(gè)多功能工具,可用作負(fù)載均衡器、反向代理和網(wǎng)絡(luò)緩存等眾多用途。然而,在Docker容器中運(yùn)行NGINX時(shí),大部分這些高級(jí)功能都被委派給其他專門(mén)的平臺(tái)或其他實(shí)例的NGINX。通常情況下,當(dāng)NGINX在Docker容器中運(yùn)行時(shí),它扮演的是Web服務(wù)器的角色。

要?jiǎng)?chuàng)建一個(gè)帶有默認(rèn)網(wǎng)站的NGINX容器,請(qǐng)運(yùn)行以下命令:

docker run -p 8080:80 nginx

此命令將下載 nginx 鏡像(如果尚未下載)并創(chuàng)建一個(gè)容器,將容器的80端口映射到主機(jī)上的8080端口。然后,您可以打開(kāi) http://localhost:8080/index.html  來(lái)查看默認(rèn)的“Welcome to nginx!”網(wǎng)站。

為了使NGINX容器能夠托管自定義網(wǎng)頁(yè)資源,您可以將本地目錄掛載到Docker容器內(nèi)部。

將以下HTML代碼保存到名為 index.html 的文件中:

<html>
    <body>
        Hello from Octopus!
    </body>
</html>

接下來(lái),運(yùn)行以下命令將當(dāng)前目錄以只讀方式掛載到NGINX容器內(nèi)的 /usr/share/nginx/html 目錄下:

docker run -v $(pwd):/usr/share/nginx/html:ro -p 8080:80 nginx

再次打開(kāi) http://localhost:8080/index.html,您將看到顯示自定義HTML頁(yè)面。

Docker鏡像的一個(gè)好處是能夠?qū)⑺邢嚓P(guān)文件捆綁到一個(gè)可分發(fā)的單個(gè)構(gòu)件中。為了實(shí)現(xiàn)這一好處,您必須基于NGINX鏡像創(chuàng)建一個(gè)新的Docker鏡像。

基于NGINX創(chuàng)建自定義鏡像

要?jiǎng)?chuàng)建您自己的 Docker 映像,請(qǐng)將以下文本保存到名為 的文件中 Dockerfile

FROM nginx
COPY index.html /usr/share/nginx/html/index.html

Dockerfile 包含構(gòu)建自定義 Docker 映像的說(shuō)明。這里你使用 FROM 命令將你的鏡像基于NGINX鏡像,然后使用命令COPY將你的 index.html 文件復(fù)制到該 /usr/share/nginx/html 目錄下的新鏡像中。

使用以下命令構(gòu)建新映像:

docker build . -t mynginx

這將構(gòu)建一個(gè)名為 的新圖像 mynginx 。使用以下命令運(yùn)行新映像:

docker run -p 8080:80 mynginx

請(qǐng)注意,這次您沒(méi)有掛載任何目錄。但是,當(dāng)您打開(kāi) http://localhost:8080/index.html  自定義 HTML 頁(yè)面時(shí),會(huì)顯示該頁(yè)面,因?yàn)樗度朐谀淖远x圖像中。

NGINX 的功能遠(yuǎn)不止托管靜態(tài)文件。要解鎖此功能,您必須使用自定義 NGINX 配置文件。

高級(jí) NGINX 配置

NGINX 通過(guò)配置文件公開(kāi)其功能。默認(rèn) NGINX 映像附帶一個(gè)簡(jiǎn)單的默認(rèn)配置文件,旨在托管靜態(tài) Web 內(nèi)容。該文件位于 /etc/nginx/nginx.conf 默認(rèn)映像中,具有以下內(nèi)容:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}


無(wú)需詳細(xì)了解該配置文件,但有一行有趣的內(nèi)容指示 NGINX 從該 /etc/nginx/conf.d 目錄加載其他配置文件:

include /etc/nginx/conf.d/*.conf;

默認(rèn)/etc/nginx/conf.d文件將 NGINX 配置為 Web 服務(wù)器。具體來(lái)說(shuō),location / 塊加載文件 /usr/share/nginx/html 就是您之前將 HTML 文件安裝到該目錄的原因:

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

您可以利用說(shuō)明加載任何 *.conf 配置文件來(lái)自 /etc/nginx 定義 NGINX。/nginx-health 在此示例中,您通過(guò)偵聽(tīng)端口 90 的自定義位置添加運(yùn)行狀況檢查,該位置使用 HTTP 200 OK響應(yīng)對(duì)路徑的請(qǐng)求。

將以下文本保存到名為 的文件中 health-check.conf

server {
    listen       90;
    server_name  localhost;

    location /nginx-health {
        return 200 "healthy\n";
        add_header Content-Type text/plain;
    }
}

修改 Dockerfile 將配置文件復(fù)制到 /etc/nginx/conf.d

FROM nginx
COPY index.html /usr/share/nginx/html/index.html
COPY health-check.conf /etc/nginx/conf.d/health-check.conf

使用以下命令構(gòu)建圖像:

docker build . -t mynginx

使用命令運(yùn)行新映像。請(qǐng)注意 9090 上公開(kāi)的新端口:

docker run -p 8080:80 -p 9090:90 mynginx

現(xiàn)在開(kāi)放 http://localhost:9090/nginx-health。返回健康檢查響應(yīng)以表明 Web 服務(wù)器已啟動(dòng)并正在運(yùn)行。

上面的示例使您的自定義圖像基于默認(rèn) nginx 圖像。然而,還有其他變體可以提供更小的圖像尺寸而不犧牲任何功能。

選擇 NGINX 變體

默認(rèn) nginx 鏡像基于Debian。不過(guò)NGINX也提供了基于Alpine的鏡像。

  • NGINX:github.com/nginxinc/docker-nginx/blob/master/Dockerfile-debian.template

  • Alpine:github.com/nginxinc/docker-nginx/blob/master/Dockerfile-alpine.template

Alpine 經(jīng)常用作 Docker 鏡像的輕量級(jí)基礎(chǔ)。要查看 Docker 鏡像的大小,必須首先將它們拉到本地工作站:

docker pull nginx
docker pull nginx:stable-alpine

然后您可以使用以下命令查找圖像尺寸:

docker image ls

由此,您可以看到 Debian 鏡像的大小約為 140 MB,而 Alpine 鏡像的大小約為 24 MB。這大大節(jié)省了圖像尺寸。

要將您的圖像基于 Alpine 變體,您需要更新 Dockerfile

FROM nginx:stable-alpine
COPY index.html /usr/share/nginx/html/index.html
COPY health-check.conf /etc/nginx/conf.d/health-check.conf

使用以下命令構(gòu)建并運(yùn)行圖像:

docker build . -t mynginx
docker run -p 8080:80 -p 9090:90 mynginx

再次打開(kāi) http://localhost:9090/nginx-health  http://localhost:8080/index.html  查看網(wǎng)頁(yè)。一切都像以前一樣繼續(xù)工作,但您的自定義圖像現(xiàn)在小得多。

結(jié)論

NGINX 是一個(gè)功能強(qiáng)大的 Web 服務(wù)器,官方 NGINX Docker 鏡像允許 DevOps 團(tuán)隊(duì)在 Docker 中托管自定義 Web 應(yīng)用程序。NGINX 還支持高級(jí)場(chǎng)景,因?yàn)樗軌蜃x取復(fù)制到自定義 Docker 映像中的配置文件。

在這篇文章中,您學(xué)習(xí)了如何創(chuàng)建托管靜態(tài) Web 應(yīng)用程序的自定義 Docker 映像,添加高級(jí) NGINX 配置文件以提供運(yùn)行狀況檢查端點(diǎn),并比較 Debian 和 Alpine NGINX 映像的大小。

相關(guān)資源

  • NGINX Docker 鏡像源代碼(github.com/nginxinc/docker-nginx)

  • Dockerfile 參考(docs.docker.com/engine/reference/builder/)文章來(lái)源地址http://www.zghlxwxcb.cn/article/515.html

到此這篇關(guān)于使用NGINX Docker鏡像構(gòu)建和運(yùn)行Web應(yīng)用程序的教程的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/515.html

如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系站長(zhǎng)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker(鏡像、容器、倉(cāng)庫(kù))工具安裝使用命令行選項(xiàng)及構(gòu)建、共享和運(yùn)行容器化應(yīng)用程序

    Docker(鏡像、容器、倉(cāng)庫(kù))工具安裝使用命令行選項(xiàng)及構(gòu)建、共享和運(yùn)行容器化應(yīng)用程序

    ??個(gè)人主頁(yè):@小沈YO. ??小編介紹:歡迎來(lái)到我的亂七八糟小星球?? ??本章內(nèi)容:Docker工具安裝使用、命令行選項(xiàng)及構(gòu)建、共享和運(yùn)行容器化應(yīng)用程序時(shí)的主要步驟 記得 評(píng)論?? +點(diǎn)贊?? +收藏?? +關(guān)注??哦~ 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 以下是在常

    2024年02月05日
    瀏覽(42)
  • 快速入門(mén):使用 Spring Boot 構(gòu)建 Web 應(yīng)用程序

    快速入門(mén):使用 Spring Boot 構(gòu)建 Web 應(yīng)用程序

    本文將討論以下主題: 安裝 Java JDK、Gradle 或 Maven 和 Eclipse 或 IntelliJ IDEA 創(chuàng)建一個(gè)新的 Spring Boot 項(xiàng)目 運(yùn)行 Spring Boot 應(yīng)用程序 編寫(xiě)一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序 打包應(yīng)用程序以用于生產(chǎn)環(huán)境 通過(guò)這些主題,您將能夠開(kāi)始使用 Spring Boot 并創(chuàng)建自己的 Web 應(yīng)用程序。 Spring Boot是一個(gè)

    2024年02月07日
    瀏覽(72)
  • 使用Docker構(gòu)建分布式應(yīng)用程序

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,也可以實(shí)現(xiàn)虛擬化。 傳統(tǒng)的應(yīng)用分為三層結(jié)構(gòu):應(yīng)用運(yùn)行環(huán)境、應(yīng)用邏輯和資源管理,Doc

    2024年02月08日
    瀏覽(103)
  • 解釋 RESTful API,以及如何使用它構(gòu)建 web 應(yīng)用程序

    ???????? RESTful API stands for Representational State Transfer Application Programming Interface. It is a set of principles and guidelines for building web services that provide data in a standard format, typically JSON or XML. RESTful API emphasizes on uniformity, scalability, reliability, performance, and flexibility. It operates on HTTP and follo

    2024年02月14日
    瀏覽(37)
  • 使用PostgreSQL構(gòu)建強(qiáng)大的Web應(yīng)用程序:最佳實(shí)踐和建議

    使用PostgreSQL構(gòu)建強(qiáng)大的Web應(yīng)用程序:最佳實(shí)踐和建議

    PostgreSQL是一個(gè)功能強(qiáng)大的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù),它擁有廣泛的用戶群和活躍的開(kāi)發(fā)社區(qū)。越來(lái)越多的Web應(yīng)用選擇PostgreSQL作為數(shù)據(jù)庫(kù) backend。如何充分利用PostgreSQL的特性來(lái)構(gòu)建健壯、高性能的Web應(yīng)用?本文將給出一些最佳實(shí)踐和建議。 一、選擇合適的PostgreSQL數(shù)據(jù)類型 PostgreSQL提供

    2024年02月12日
    瀏覽(34)
  • 解釋 RESTful API,以及如何使用它構(gòu)建 web 應(yīng)用程序。

    RESTful API是一種利用HTTP協(xié)議進(jìn)行通信的Web API設(shè)計(jì)風(fēng)格,它采用了一組統(tǒng)一且可緩存的操作,包括GET、POST、PUT、DELETE等,通過(guò)URL來(lái)定位資源,以及使用JSON、XML等格式來(lái)傳輸數(shù)據(jù),以實(shí)現(xiàn)系統(tǒng)之間的數(shù)據(jù)交互和資源共享。 使用RESTful API構(gòu)建Web應(yīng)用程序,首先需要設(shè)計(jì)API的URL、

    2024年02月11日
    瀏覽(41)
  • Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    目錄 編寫(xiě)Dockerfile 1.文件內(nèi)容需求: 2.編寫(xiě)Dockerfile: 3.開(kāi)始構(gòu)建鏡像 ?4.現(xiàn)在我們運(yùn)行一個(gè)容器,查看我們的網(wǎng)頁(yè)是否可訪問(wèn) 推送鏡像到私有倉(cāng)庫(kù) 1.把要上傳的鏡像打上合適的標(biāo)簽 2.登錄harbor倉(cāng)庫(kù) 3.上傳鏡像 1.文件內(nèi)容需求: 基于centos基礎(chǔ)鏡像。 指定作者信息。 安裝nginx服

    2024年02月11日
    瀏覽(119)
  • Elasticsearch:使用在本地計(jì)算機(jī)上運(yùn)行的 LLM 以及 Ollama 和 Langchain 構(gòu)建 RAG 應(yīng)用程序

    Elasticsearch:使用在本地計(jì)算機(jī)上運(yùn)行的 LLM 以及 Ollama 和 Langchain 構(gòu)建 RAG 應(yīng)用程序

    無(wú)需 GPU 的隱私保護(hù) LLM。在本博客中,我將演示使用不同的工具 Ollama 構(gòu)建的 RAG 應(yīng)用程序。 與本文相關(guān)的所有源代碼均已發(fā)布在 github上。 請(qǐng)克隆存儲(chǔ)庫(kù)以跟隨文章操作。我們可以通過(guò)如下的方式來(lái)克隆: Ollama 是一個(gè)輕量級(jí)且靈活的框架,專為在個(gè)人計(jì)算機(jī)上本地部署 LL

    2024年04月16日
    瀏覽(29)
  • 什么是RESTful API,以及如何它使用構(gòu)建 web 應(yīng)用程序(InsCode AI 創(chuàng)作助手)

    RESTful API 是一種基于 REST(Representational State Transfer,表征狀態(tài)轉(zhuǎn)移) 架構(gòu)風(fēng)格的 API,它使用 HTTP 協(xié)議的方法(GET,POST,PUT,DELETE)來(lái)實(shí)現(xiàn)資源的創(chuàng)建、讀取、更新和刪除。通過(guò)這種方式,API 可以更加簡(jiǎn)單和靈活,使得不同編程語(yǔ)言之間的交互更加容易。 使用 RESTful API 構(gòu)建

    2024年02月09日
    瀏覽(33)
  • Nest的基本概念,以及如何使用Nest CLI來(lái)構(gòu)建一個(gè)簡(jiǎn)單的Web應(yīng)用程序

    Nest是一個(gè)用于構(gòu)建高效、可擴(kuò)展的Node.js服務(wù)器端應(yīng)用程序的框架。它是基于Express.js構(gòu)建的,并且提供了多種新特性和抽象層,可以讓開(kāi)發(fā)者更加輕松地構(gòu)建復(fù)雜的應(yīng)用程序。 本文將介紹Nest的基本概念,以及如何使用Nest CLI來(lái)構(gòu)建一個(gè)簡(jiǎn)單的Web應(yīng)用程序。 模塊 在Nest中,模塊

    2024年02月02日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包