使用 Docker 和 Nginx 高效部署 Web 服務(適用于慈云數據云服務器)

前言

在現代 Web 服務部署中,DockerNginx 的結合是一種高效、靈活且可擴展的解決方案。

  • Docker 使應用程序及其依賴項封裝到一個獨立的容器中,確保一致性,并簡化部署過程。
  • Nginx 作為高性能 Web 服務器和反向代理,能夠高效處理請求、提供負載均衡,并提升網站安全性。

本教程將詳細介紹如何使用 DockerNginx 部署 Web 服務,并結合 慈云數據 的服務器推薦,幫助您高效地完成部署任務。


一、準備工作

在開始部署之前,確保您擁有一臺穩定的服務器。慈云數據 提供高性能云服務器,適合各類 Web 應用和 DevOps 項目。

1.1 為什么選擇慈云數據?

  • 高性價比:提供靈活的配置,滿足不同規模的業務需求。
  • 高速穩定:BGP 多線接入,直連中國電信 CN2 網絡,保證低延遲、高速訪問。
  • 7x24h 服務器監控:專業運維團隊提供全天候支持,確保業務穩定運行。

👉 服務器推薦:

  • 基礎型:2 核 4G 內存,適用于個人博客、小型應用。
  • 標準型:4 核 8G 內存,適用于中等流量網站、企業應用。
  • 高性能型:8 核 16G 內存,適用于高并發、大流量 Web 服務。

立即獲取服務器 👉 慈云數據官網


二、Docker 環境安裝

2.1 安裝 Docker

可以通過官方提供的安裝腳本進行快速安裝:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

如果遇到網絡問題,可使用國內 Daocloud 一鍵安裝:

curl -sSL https://get.daocloud.io/docker | sh

啟動 Docker 服務

sudo systemctl start docker

驗證 Docker 是否安裝成功

docker --version

如果正確顯示版本號,則安裝成功。


2.2 推薦安裝 1Panel 面板

1Panel 是一款現代化的服務器管理面板,支持一鍵安裝 DockerDocker Compose,極大提升服務器管理的便捷性。
可在 慈云數據 服務器上安裝:

curl -sSL https://get.1panel.cn | bash

安裝完成后,即可在 Web 界面管理容器、創建 Web 服務,極大簡化運維操作。


三、部署 Web 應用

3.1 拉取 Nginx 鏡像

docker pull nginx

這將從 Docker 官方倉庫拉取最新版的 Nginx 鏡像。


3.2 創建掛載目錄

在宿主機上創建以下目錄,用于存放 日志配置Web 文件

mkdir -p /root/nginx_conf
mkdir -p /root/nginx_logs
mkdir -p /root/nginx_web

授權文件夾,防止 Nginx 無法訪問:

chmod 777 /root/nginx_conf
chmod 777 /root/nginx_logs
chmod 777 /root/nginx_web

3.3 創建容器并掛載目錄

?? 注意:如果直接掛載空目錄,會導致 Nginx 容器的配置文件目錄為空,進而啟動失敗。我們先啟動一次容器,然后復制默認配置文件。

第一步:啟動 Nginx 容器
docker run -itd --name nginx -p 80:80 nginx
第二步:復制配置文件到宿主機
docker cp nginx:/etc/nginx /root/nginx_conf
第三步:刪除容器,并重新創建
docker rm -f nginx
docker run -itd --name nginx -p 80:80 \-v /root/nginx_web:/var/www/html \-v /root/nginx_conf/nginx:/etc/nginx \-v /root/nginx_logs:/var/log/nginx \nginx

四、配置 Nginx

進入配置目錄 /root/nginx_conf/conf.d/,修改 default.conf,或者新建 .conf 文件。

Nginx 會自動讀取該目錄下所有 .conf 配置文件

示例 Nginx 配置文件:

server {listen 80;server_name 你的服務器IP或域名;client_max_body_size 20m;access_log /var/log/nginx/host.access.log main;gzip on;gzip_static on;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 5;gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_disable "MSIE [1-6]\.";location / {root   /var/www/html;index index.html index.htm;try_files $uri $uri/ /index.html;}error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}

五、上傳 Web 文件并訪問

5.1 上傳 Web 項目

將您的 Web 項目上傳到 /root/nginx_web 目錄,例如:

scp -r my_project root@your_server_ip:/root/nginx_web

5.2 重啟 Nginx

docker restart nginx

5.3 訪問 Web 服務

通過瀏覽器訪問:

http://你的服務器IP:80

如果一切正常,您的 Web 頁面應能正確加載。


六、域名綁定和 HTTPS 配置

6.1 綁定域名

如果您想通過 域名 訪問 Web 服務,需要進行 DNS 解析。
操作步驟:

  1. 在域名服務商(如阿里云、騰訊云)購買域名
  2. 在 DNS 解析管理頁面,添加 A 記錄,將域名指向 慈云數據 服務器的 IP
  3. 修改 Nginx 配置文件,將 server_name 改為你的域名:
server_name www.yourdomain.com;
  1. 重啟 Nginx
docker restart nginx

6.2 配置 HTTPS(SSL 證書)

HTTP 站點會被瀏覽器標記為 不安全,因此建議啟用 HTTPS
步驟:

  1. 阿里云 申請 免費 SSL 證書,下載 .pem.key 文件
  2. 將證書上傳至服務器 /root/nginx_conf/ssl/ 目錄
  3. 在 Nginx 配置中啟用 HTTPS:
server {listen 443 ssl;server_name www.yourdomain.com;ssl_certificate /root/nginx_conf/ssl/cert.pem;ssl_certificate_key /root/nginx_conf/ssl/key.pem;location / {root /var/www/html;index index.html index.htm;}
}
  1. 重啟 Nginx
docker restart nginx

訪問 https://yourdomain.com,即可使用 HTTPS 安全訪問


總結

本教程介紹了如何在 Docker + Nginx 環境中部署 Web 服務,并結合 慈云數據 云服務器,確保高效穩定運行。
如果你需要高性能云服務器,推薦訪問 慈云數據官網,選擇適合的配置!🚀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897007.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897007.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897007.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C 語言數據結構(一):時/空間復制度

目錄 一、前言 1. 什么是數據結構 2. 什么是算法 二、時 / 空間復雜度 1. 算法效率 2. 時間復雜度 2.1 時間復雜度的概念 2.2 大 O 的漸進表示法 2.3 常見的計算時間復雜度的例子 2.3.1 實例 1 2.3.2 實例 2 2.3.3 實例 3 2.3.4 實例 4 2.3.5 實例 5 &#xff1a…

一文讀懂Redis分布式鎖

引言 在當今互聯網時代,分布式系統已成為大規模應用的主流架構。然而,這種架構中多個服務同時對共享資源的操作可能導致并發問題,如數據不一致和資源爭用。有效管理這些并發訪問,確保共享資源的安全性顯得尤為重要。 分布式鎖作…

23種設計模式一覽【設計模式】

文章目錄 前言一、創建型模式(Creational Patterns)二、結構型模式(Structural Patterns)三、行為型模式(Behavioral Patterns) 前言 設計模式是軟件工程中用來解決特定問題的一組解決方案。它們是經過驗證…

極狐GitLab 17.9 正式發布,40+ DevSecOps 重點功能解讀【三】

GitLab 是一個全球知名的一體化 DevOps 平臺,很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版,專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料: 極狐GitLab 官網極狐…

elk的相關的基礎

以下是關于ELK(Elasticsearch, Logstash, Kibana)的200個基礎問題及其答案,涵蓋了ELK的核心概念、組件、配置、使用場景、優化等方面。 ?Elasticsearch 基礎 ?**什么是Elasticsearch?**? 答:Elasticsearch是一個分…

Beyond Compare for mac v5.0.6.30713 文件對比利器 支持M、Intel芯片

Mac毒搜集到的Beyond Compare是一套超級的文件及文件夾(目錄)的比較工具,不僅可以快速比較出兩個目錄的不同,還可以比較每個文件的內容,而且可以任意顯示比較結果。 應用介紹 程序內建了文件瀏覽器,方便您對文件、文件夾、壓縮包…

ProfibusDP主站轉ModbusTCP網關如何進行數據互換

ProfibusDP主站轉ModbusTCP網關如何進行數據互換 在現代工業自動化領域,通信協議的多樣性和復雜性不斷增加。Profibus DP作為一種經典的現場總線標準,廣泛應用于工業控制網絡中;而Modbus TCP作為基于以太網的通信協議,因其簡單易…

python代碼注釋方式

在 Python 中,注釋是用于解釋代碼、提高代碼可讀性和可維護性的重要工具。Python 支持兩種主要的注釋方式:單行注釋和多行注釋。此外,Python 還支持文檔字符串(docstrings),用于為模塊、函數、類和方法提供…

【雜談】信創電腦華為w515(統信系統)登錄鎖定及忘記密碼處理

華為w515麒麟芯片版,還有非麒麟芯片版本,是一款信創電腦,一般安裝的UOS系統。 準備一個空U盤,先下載鏡像文件及啟動盤制作工具,連接如下: 百度網盤 請輸入提取碼 http://livecd.uostools.com/img/apps/l…

數據結構秘籍(四) 堆 (詳細包含用途、分類、存儲、操作等)

1 引言 什么是堆? 堆是一種滿足以下條件的樹:(樹這一篇可以參考我的文章數據結構秘籍(三)樹 (含二叉樹的分類、存儲和定義)-CSDN博客) 堆中的每一個結點值都大于等于&#xff08…

#define GBB_DEPRECATED_MSG(msg) __declspec(deprecated(msg))

這個宏 #define GBB_DEPRECATED_MSG(msg) __declspec(deprecated(msg)) 是用來在 C++ 中標記某些函數、變量或者代碼元素為已棄用(deprecated)的,并附帶一個自定義的棄用消息。 具體解釋: __declspec(deprecated(msg)): __declspec 是 Microsoft Visual C++ (MSVC) 的擴展…

服務器數據恢復—raid5陣列中硬盤掉線導致上層應用不可用的數據恢復案例

服務器數據恢復環境&故障: 某公司一臺服務器,服務器上有一組由8塊硬盤組建的raid5磁盤陣列。 磁盤陣列中2塊硬盤的指示燈顯示異常,其他硬盤指示燈顯示正常。上層應用不可用。 服務器數據恢復過程: 1、將服務器中所有硬盤編號…

全網獨家:zabbixV7版本容器服務器無法訪問Postgres V17數據庫的問題解決

近期將zabbix平臺從V6.2.6升級到7.2.4,遇到問題“PostgresoL server is not available. Waiting 5seconds”,容器無法訪問Postgres V17數據庫,本文記錄問題解決過程。 一、系統環境 1、數據庫版本 數據庫版本:postgres-17.4-tim…

進程控制 ─── linux第15課

目錄 進程控制 1.進程創建 (fork前面講過了) 寫時拷貝 進程終止 進程退出場景 退出碼 進程終止方法 進程控制 1.進程創建 (fork前面講過了) 在linux中fork函數時非常重要的函數,它從已存在進程中創建一個新進程。新進程為子進程,而原進程為父…

常見的網絡協議介紹

一、什么是網絡協議 指的是通信雙方的數據發送和接收順序,數據的封裝規則。 通俗解釋:描述雙方發送和接收的每個字節是按照什么規則。 二、TCP/IP體系的常用協議 (一)應用層 HTTP:超文本協議;指的是用來傳輸文本網頁的協議&#…

Hive-07之企業級調優

????????hive的企業級調優 1、Fetch抓取 Fetch抓取是指,Hive中對某些情況的查詢可以不必使用MapReduce計算 例如:select * from score;在這種情況下,Hive可以簡單地讀取employee對應的存儲目錄下的文件,然后輸出查詢結果…

華為云 | 快速搭建DeepSeek推理系統

DeepSeek(深度求索)作為一款國產AI大模型,憑借其高性能、低成本和多模態融合能力,在人工智能領域崛起,并在多個行業中展現出廣泛的應用潛力。 如上所示,在華為云解決方案實踐中,華為云提供的快速…

Spring Boot 3 整合 MinIO 實現分布式文件存儲

引言 文件存儲已成為一個做任何應用都不可回避的需求。傳統的單機文件存儲方案在面對大規模數據和高并發訪問時往往力不從心,而分布式文件存儲系統則提供了更好的解決方案。本篇文章我將基于Spring Boot 3 為大家講解如何基于MinIO來實現分布式文件存儲。 分布式存…

3月5日作業

代碼作業: #!/bin/bash# 清空目錄函數 safe_clear_dir() {local dir"$1"local name"$2"if [ -d "$dir" ]; thenwhile true; doread -p "檢測到 $name 目錄已存在,請選擇操作: 1) 清空目錄內容 2) 保留目…

達夢數據庫關于參數PK_WITH_CLUSTER的改動分析

目錄 1、PK_WITH_CLUSTER取值為0 2、PK_WITH_CLUSTER取值為1 達夢數據庫的參數PK_WITH_CLUSTER在最近使用過程中發現與前期使用的版本存在差異,特此測試分析一下。具體哪個版本改動的暫未得知。 PK_WITH_CLUSTER,默認值為0,動態會話級參數。…