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

Docker搭建一個nginx服務的實現(xiàn)

 更新時間:2024年08月08日 10:25:51   作者:海綿寶寶de派小星  
Nginx是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務,本文主要介紹了Docker搭建一個nginx服務的實現(xiàn),感興趣的可以了解一下

首先先認識一下nginx服務:

NGINX是一款高性能的Web服務器和反向代理服務器軟件,同時也可用作郵件代理服務器。它最初由俄羅斯程序員Igor Sysoev開發(fā),以其高并發(fā)處理能力、低內(nèi)存消耗和出色的性能優(yōu)化而聞名。

認識nginx服務

Web服務器

作為Web服務器,NGINX負責處理來自客戶端(如瀏覽器)的HTTP請求,將這些請求映射到服務器上的文件或其他資源,然后返回HTTP響應給客戶端。這個過程中,NGINX可以處理靜態(tài)內(nèi)容,如HTML、CSS、JavaScript文件等,直接返回給用戶。對于動態(tài)內(nèi)容,比如PHP腳本或Python應用生成的內(nèi)容,NGINX通常會將請求轉(zhuǎn)發(fā)給后端的應用服務器(如PHP-FPM或uWSGI)來處理,然后再將后端的響應返回給客戶端。

在這里插入圖片描述

反向代理服務器

作為反向代理服務器,NGINX接收客戶端的請求,并將其轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡中的一個或多個服務器。這個過程對客戶端是透明的,客戶端不知道實際處理請求的是哪個后端服務器。這種配置有助于負載均衡,即通過分散請求到多個服務器來提高網(wǎng)站的可用性和擴展性。此外,反向代理還可以用于SSL/TLS加密卸載、緩存內(nèi)容、安全防護(如DDoS攻擊防護)等功能。

高性能特點

  • 事件驅(qū)動模型:與傳統(tǒng)的每個連接/請求一個線程的模型不同,NGINX使用了異步事件驅(qū)動架構(gòu),這意味著它可以同時處理大量連接而無需為每個連接創(chuàng)建單獨的線程或進程,從而大大提高了效率和可伸縮性。
  • 高并發(fā)能力:設計上特別適合處理高并發(fā)連接,尤其在處理靜態(tài)內(nèi)容和作為代理服務器時表現(xiàn)優(yōu)異。
  • 低資源消耗:由于其高效的架構(gòu),NGINX可以在有限的硬件資源下服務更多的客戶端連接,降低了運行成本。

總之,NGINX是一個強大且靈活的工具,廣泛應用于現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中,無論是簡單的靜態(tài)網(wǎng)站托管,還是復雜的分布式系統(tǒng)部署,都能見到它的身影。

如上所示,是nginx服務的基本介紹,那么下面就借助Docker完成nginx服務

安裝nginx

apt install nginx -y

啟動nginx

使用

nginx

就能啟動nginx,此時訪問一下nginx:

在這里插入圖片描述

當看到這個界面,就說明nginx已經(jīng)啟動成功了

停止nginx

使用kill命令就可以把進程停止

查找nginx鏡像

docker search nginx

拉取nginx鏡像,啟動nginx站點

root@VM-24-7-ubuntu:~# docker pull nginx:1.23.3
1.23.3: Pulling from library/nginx
f1f26f570256: Pull complete 
84181e80d10e: Pull complete 
1ff0f94a8007: Pull complete 
d776269cad10: Pull complete 
e9427fcfa864: Pull complete 
d4ceccbfc269: Pull complete 
Digest: sha256:f4e3b6489888647ce1834b601c6c06b9f8c03dee6e097e13ed3e28c01ea3ac8c
Status: Downloaded newer image for nginx:1.23.3
docker.io/library/nginx:1.23.3

此時本地就會有nginx的鏡像信息

root@VM-24-7-ubuntu:~# docker images;
REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
nginx                         latest    4f67c83422ec   9 days ago      188MB
hello-world                   latest    d2c94e258dcb   13 months ago   13.3kB
myregistry.com/myhelloworld   latest    d2c94e258dcb   13 months ago   13.3kB
nginx                         1.23.3    ac232364af84   14 months ago   142MB

接著運行鏡像

docker run --name nginx1 --rm -it -p 80:80 nginx:1.23.3 bash

運行鏡像之后,此時就會進入到容器中進行運行,比如:

在這里插入圖片描述

此時我們檢查一下操作系統(tǒng)的版本:

root@47a7ad5b7c9f:/# cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

就會發(fā)現(xiàn),此時的版本不是Ubuntu,我們再開一個新的shell看一下當前版本的操作系統(tǒng)

test@VM-24-7-ubuntu:~$ cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.4 LTS"
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

這才是本地shell,說明我們的Docker服務已經(jīng)運行成功了,此時已經(jīng)進入到了容器的shell當中

我們在容器shell中啟動nginx服務:

root@47a7ad5b7c9f:/# nginx
2024/06/08 03:23:53 [notice] 9#9: using the "epoll" event method
2024/06/08 03:23:53 [notice] 9#9: nginx/1.23.3
2024/06/08 03:23:53 [notice] 9#9: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2024/06/08 03:23:53 [notice] 9#9: OS: Linux 5.15.0-106-generic
2024/06/08 03:23:53 [notice] 9#9: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/06/08 03:23:53 [notice] 10#10: start worker processes
2024/06/08 03:23:53 [notice] 10#10: start worker process 11
2024/06/08 03:23:53 [notice] 10#10: start worker process 12

然后我們從另外一個shell中去查看當前ip的80端口的信息:

test@VM-24-7-ubuntu:~$ curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a  rel="external nofollow" >nginx.org</a>.<br/>
Commercial support is available at
<a  rel="external nofollow" >nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

此時就會發(fā)現(xiàn),當前的服務上已經(jīng)部署成功了,使用網(wǎng)頁進行訪問也是如此,并且還和前面的網(wǎng)頁不一樣,更說明了這是在容器中運行的:

在這里插入圖片描述

斷開服務,再進行訪問,就會發(fā)現(xiàn)異樣:

test@VM-24-7-ubuntu:~/wechat$ curl 127.0.0.1
curl: (7) Failed to connect to 127.0.0.1 port 80 after 0 ms: Connection refused

其他方式拉取nginx鏡像信息

拉取某個組織或者用戶定制的鏡像:

docker pull xxx/nginx:1.23.4

通過 DIGEST 拉取鏡像

首先要明確一個概念,為什么要有DIGEST?它和版本號有什么區(qū)別?

DIGEST 不僅僅是版本號那么簡單,它是對鏡像內(nèi)容的直接反映。想象一下,即使兩個 app 版本號相同,但如果編譯時所依賴的庫文件或代碼有細微差異,它們的實際二進制內(nèi)容就會不同。DIGEST 就像是對這個最終打包產(chǎn)物的“指紋”,哪怕是最微小的改動,都會導致 DIGEST 發(fā)生變化。

所以,通過 DIGEST 拉取鏡像,不僅僅是在選擇不同的“版本號”,而是確保你獲取到的鏡像與你期望的鏡像內(nèi)容完全一致,哪怕是同一個標簽下的鏡像有了更新也不例外。

所以我們嘗試拉取一個DIGEST:

在這里插入圖片描述

root@VM-24-7-ubuntu:~# docker pull nginx@sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
docker.io/library/nginx@sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa: Pulling from library/nginx
3f9582a2cbe7: Pull complete 
1c3cdc1adeef: Pull complete 
0d20c7b11e51: Pull complete 
2f98bdf28b77: Pull complete 
90f8f705fe4d: Pull complete 
66350be01a8b: Pull complete 
Digest: sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
Status: Downloaded newer image for nginx@sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa
docker.io/library/nginx@sha256:d7573e9b475c64dbf09dac0808517e8d5a919918aa772ceca381091365a970aa

此時查看本地鏡像:

root@VM-24-7-ubuntu:~# docker images
REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
nginx                         latest    4f67c83422ec   9 days ago      188MB
hello-world                   latest    d2c94e258dcb   13 months ago   13.3kB
myregistry.com/myhelloworld   latest    d2c94e258dcb   13 months ago   13.3kB
nginx                         1.23.3    ac232364af84   14 months ago   142MB
nginx                         <none>    8c9eabeac475   15 months ago   142MB

就會有不同版本的nginx了

到此這篇關于Docker搭建一個nginx服務的實現(xiàn)的文章就介紹到這了,更多相關Docker搭建nginx服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • docker搭建minio服務器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無法訪問

    docker搭建minio服務器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無法訪問

    這篇文章主要介紹了docker搭建minio服務器,解決內(nèi)網(wǎng)穿透后外網(wǎng)無法訪問的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Docker部署PairDrop文件傳輸工具的項目實踐

    Docker部署PairDrop文件傳輸工具的項目實踐

    本文主要介紹了Docker部署PairDrop文件傳輸工具的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • Docker利用Dockerfile與docker?build命令構(gòu)建鏡像指南

    Docker利用Dockerfile與docker?build命令構(gòu)建鏡像指南

    Docker鏡像能將應用程序及其所有依賴打包成一個標準化的、可移植的文件,本文將簡單介紹一下如何使用docker?commit指令和Dockerfile進行構(gòu)建,需要的小伙伴可以了解下
    2025-10-10
  • Docker磁盤清理之安全釋放overlay2空間的方法

    Docker磁盤清理之安全釋放overlay2空間的方法

    在使用docker時,往往會出現(xiàn)磁盤空間不足,導致該問題的通常原因是因為docker中部署的系統(tǒng)輸出了大量的日志內(nèi),這篇文章主要介紹了Docker磁盤清理之安全釋放overlay2空間的方法,需要的朋友可以參考下
    2025-11-11
  • docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作

    docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作

    這篇文章主要介紹了docker內(nèi)網(wǎng)搭建dns使用域名訪問替代ip:port的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Docker快速部署Mongodb主副本集實踐指南

    Docker快速部署Mongodb主副本集實踐指南

    本文主要介紹了MongoDB主副本集的基本概念及其應用場景,MongoDB適合處理數(shù)據(jù)不固定且不支持事務的業(yè)務需求,通過主副本集實現(xiàn)高可用性和數(shù)據(jù)一致性,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-09-09
  • docker部署confluence的完整步驟

    docker部署confluence的完整步驟

    這篇文章主要介紹了docker部署confluence的完整步驟,這里的鏡像并不是小編自己寫的是基于他人打包的文中有詳細介紹,需要的朋友可以參考下
    2021-06-06
  • 三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題

    三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題

    這篇文章主要介紹了三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-11-11
  • linux 詳解useradd 命令基本用法

    linux 詳解useradd 命令基本用法

    這篇文章主要介紹了linux 詳解useradd 命令基本用法的相關資料,需要的朋友可以參考下
    2017-01-01
  • Docker部署kafka的詳細教程

    Docker部署kafka的詳細教程

    在現(xiàn)代分布式系統(tǒng)架構(gòu)中,Apache Kafka 已成為實時數(shù)據(jù)流處理的事實標準,這篇文章為大家詳細介紹了如何在Docker中部署kafka,感興趣的小伙伴可以了解下
    2025-05-05

最新評論

电白县| 肥乡县| 靖江市| 个旧市| 彭泽县| 香港 | 搜索| 台湾省| 南昌市| 海盐县| 木兰县| 汤阴县| 临湘市| 晋城| 德昌县| 张家港市| 教育| 邛崃市| 东辽县| 肇东市| 西贡区| 海原县| 塔河县| 绥宁县| 万年县| 巫溪县| 西林县| 阳朔县| 西乌| 丽水市| 汾阳市| 浠水县| 淅川县| 西华县| 上饶市| 佛学| 龙里县| 玉龙| 石嘴山市| 黄山市| 拉萨市|