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

Docker部署Nginx HTTPS服務(wù)的實(shí)現(xiàn)步驟

 更新時(shí)間:2026年01月09日 09:02:49   作者:tzhou64452  
本文主要介紹了Docker部署Nginx HTTPS服務(wù),實(shí)現(xiàn)HTTP到HTTPS的自動(dòng)跳轉(zhuǎn),并解決中文亂碼、證書(shū)掛載、鏡像檢測(cè)等問(wèn)題的步驟,具有一定的參考價(jià)值,感興趣的可以了解一下

一、文檔說(shuō)明

1.1 適用環(huán)境

  • 操作系統(tǒng):CentOS 7(64位)
  • 核心目標(biāo):基于 Docker 部署 Nginx 服務(wù),實(shí)現(xiàn) HTTP 自動(dòng)跳轉(zhuǎn) HTTPS,解決中文亂碼、證書(shū)掛載、鏡像檢測(cè)等問(wèn)題
  • 前置條件:服務(wù)器以 root 用戶登錄,且能訪問(wèn)外網(wǎng)(已手動(dòng)拉取 nginx:1.21 鏡像)

1.2 最終效果

  • 訪問(wèn) http://192.168.10.110 自動(dòng)跳轉(zhuǎn)至 https://192.168.10.110
  • HTTPS 頁(yè)面正常顯示中文,無(wú)亂碼
  • Nginx 容器開(kāi)機(jī)自啟,配置/證書(shū)/日志持久化存儲(chǔ)

二、詳細(xì)部署步驟

步驟1:環(huán)境檢查與基礎(chǔ)準(zhǔn)備

1.1 檢查用戶權(quán)限(必須 root)

# 驗(yàn)證當(dāng)前用戶是否為 root
id -u
# 輸出 0 表示為 root 用戶,否則切換 root:su root

1.2 安裝基礎(chǔ)工具(解決依賴)

# 安裝 lsof(端口檢測(cè))、openssl(證書(shū)生成)等工具
yum install -y lsof openssl net-tools wget curl &>/dev/null

1.3 檢查端口可用性(80/443 必須空閑)

# 檢查 80 端口
lsof -i:80
# 檢查 443 端口
lsof -i:443

# 若端口被占用,關(guān)閉占用進(jìn)程(示例:關(guān)閉 80 端口占用進(jìn)程)
kill -9 $(lsof -t -i:80)

步驟2:創(chuàng)建工作目錄(統(tǒng)一管理資源)

# 創(chuàng)建核心目錄(配置/證書(shū)/頁(yè)面/日志)
mkdir -p /opt/nginx-https/{conf,cert,wwwroot,logs}
# 設(shè)置目錄權(quán)限(避免容器掛載后權(quán)限不足)
chmod -R 755 /opt/nginx-https

步驟3:生成 SSL 自簽名證書(shū)

# 進(jìn)入證書(shū)目錄
cd /opt/nginx-https/cert

# 1. 生成 2048 位私鑰(無(wú)密碼)
openssl genrsa -out nginx.key 2048 &>/dev/null

# 2. 生成證書(shū)請(qǐng)求文件(無(wú)交互,適配主機(jī) IP)
openssl req -new -key nginx.key -out nginx.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Test/OU=IT/CN=192.168.10.110" &>/dev/null

# 3. 生成自簽名證書(shū)(有效期 365 天)
openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt &>/dev/null

# 4. 驗(yàn)證證書(shū)文件(必須存在 nginx.key 和 nginx.crt)
ls -l /opt/nginx-https/cert/
# 輸出如下則成功:
# -rw-r--r-- 1 root root 1027 12月 28 23:00 nginx.crt
# -rw-r--r-- 1 root root 1086 12月 28 23:00 nginx.csr
# -rw-r--r-- 1 root root 1675 12月 28 23:00 nginx.key

# 5. 設(shè)置證書(shū)權(quán)限(Nginx 需讀取權(quán)限)
chmod 644 /opt/nginx-https/cert/nginx.key /opt/nginx-https/cert/nginx.crt

步驟4:編寫 Nginx HTTPS 配置文件

4.1 創(chuàng)建配置文件

vim /opt/nginx-https/conf/nginx.conf

4.2 粘貼完整配置(含 UTF-8 編碼,解決中文亂碼)

worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    # 核心:解決中文亂碼,全局指定 UTF-8 編碼
    charset utf-8;

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr [$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;
    keepalive_timeout  65;

    # HTTP 服務(wù):自動(dòng)跳轉(zhuǎn) HTTPS
    server {
        listen       80;
        server_name  192.168.10.110;
        return 301 https://$host$request_uri;
    }

    # HTTPS 核心配置
    server {
        listen       443 ssl;
        server_name  192.168.10.110;

        # 證書(shū)掛載路徑(容器內(nèi)路徑,對(duì)應(yīng)宿主機(jī) /opt/nginx-https/cert)
        ssl_certificate      /etc/nginx/cert/nginx.crt;
        ssl_certificate_key  /etc/nginx/cert/nginx.key;

        # SSL 優(yōu)化配置
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        # 靜態(tài)頁(yè)面目錄(掛載宿主機(jī) /opt/nginx-https/wwwroot)
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        # 錯(cuò)誤頁(yè)面配置
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

4.3 驗(yàn)證配置語(yǔ)法(關(guān)鍵:掛載證書(shū)目錄驗(yàn)證)

# 用容器內(nèi) Nginx 驗(yàn)證配置(同時(shí)掛載配置和證書(shū)目錄)
docker run --rm \
-v /opt/nginx-https/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx-https/cert:/etc/nginx/cert \
nginx:1.21 nginx -t

# 輸出如下則配置正確:
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

步驟5:創(chuàng)建測(cè)試頁(yè)面(解決中文亂碼)

# 編輯測(cè)試頁(yè)面,指定 UTF-8 編碼
vim /opt/nginx-https/wwwroot/index.html

粘貼以下內(nèi)容:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
</head>
<body>
    <h1>Nginx HTTPS 部署成功!</h1>
    <p>主機(jī)IP:192.168.10.110</p>
</body>
</html>

設(shè)置頁(yè)面權(quán)限:

chmod 644 /opt/nginx-https/wwwroot/index.html

步驟6:?jiǎn)?dòng) Nginx 容器

6.1 清理舊容器(避免沖突)

# 停止并刪除同名舊容器(若存在)
docker stop nginx-https &>/dev/null
docker rm nginx-https &>/dev/null

6.2 啟動(dòng)新容器(完整掛載所有目錄)

docker run -d \
--name nginx-https \
--privileged=true \
-p 80:80 \
-p 443:443 \
-v /opt/nginx-https/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx-https/cert:/etc/nginx/cert \
-v /opt/nginx-https/wwwroot:/usr/share/nginx/html \
-v /opt/nginx-https/logs:/var/log/nginx \
--restart=always \
nginx:1.21

參數(shù)說(shuō)明:

參數(shù)作用
--name nginx-https容器命名為 nginx-https
--privileged=true提升容器權(quán)限,解決掛載目錄權(quán)限不足問(wèn)題
-p 80:80/-p 443:443宿主機(jī)端口映射到容器端口
-v 宿主機(jī)路徑:容器路徑目錄掛載,實(shí)現(xiàn)配置/證書(shū)/頁(yè)面/日志持久化(修改宿主機(jī)文件無(wú)需重建容器)
--restart=always容器隨 Docker 開(kāi)機(jī)自啟

6.3 驗(yàn)證容器啟動(dòng)狀態(tài)

# 查看容器是否運(yùn)行(狀態(tài)為 Up 則成功)
docker ps | grep nginx-https

# 輸出示例:
# abc123456789   nginx:1.21   "/docker-entrypoint.…"   10 seconds ago   Up 9 seconds   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx-https

三、驗(yàn)證部署結(jié)果

3.1 命令行驗(yàn)證

3.1.1 驗(yàn)證 HTTP 自動(dòng)跳轉(zhuǎn)

curl -I http://192.168.10.110
# 輸出 301 跳轉(zhuǎn)則成功:
# HTTP/1.1 301 Moved Permanently
# Location: https://192.168.10.110/

3.1.2 驗(yàn)證 HTTPS 訪問(wèn)(忽略自簽名證書(shū))

curl -k https://192.168.10.110
# 輸出測(cè)試頁(yè)面 HTML 內(nèi)容則成功(無(wú)亂碼)

3.2 瀏覽器驗(yàn)證

  1. 打開(kāi)瀏覽器,訪問(wèn) https://192.168.10.110
  2. 忽略“不安全連接”警告(自簽名證書(shū)正?,F(xiàn)象);
  3. 頁(yè)面顯示“Nginx HTTPS 部署成功!主機(jī)IP:192.168.10.110”,中文無(wú)亂碼則完成。

四、常見(jiàn)問(wèn)題排查

4.1 鏡像檢測(cè)失敗

現(xiàn)象:提示“nginx:1.21 鏡像不存在”,但已拉?。?br />解決:用格式化命令驗(yàn)證鏡像:

docker images --format "{{.Repository}}:{{.Tag}}" | grep nginx:1.21
# 輸出 nginx:1.21 則鏡像存在,重新執(zhí)行啟動(dòng)命令即可

4.2 證書(shū)文件不存在

現(xiàn)象:Nginx 配置測(cè)試提示“cannot load certificate”;
解決

# 檢查證書(shū)文件是否存在
ls -l /opt/nginx-https/cert/
# 重新生成證書(shū)(步驟3),確保 nginx.key 和 nginx.crt 存在

4.3 中文亂碼

現(xiàn)象:頁(yè)面中文顯示為方框/亂碼;
解決

  1. 確認(rèn)測(cè)試頁(yè)面添加 <meta charset="UTF-8">;
  2. 確認(rèn) Nginx 配置 http 塊內(nèi)添加 charset utf-8;
  3. 重啟容器:docker restart nginx-https

4.4 端口占用

現(xiàn)象:容器啟動(dòng)失敗,提示端口被占用;
解決

# 查找占用端口的進(jìn)程
lsof -i:80
# 關(guān)閉進(jìn)程(示例)
kill -9 $(lsof -t -i:80)

五、日常運(yùn)維命令

5.1 容器啟停/重啟

# 啟動(dòng)
docker start nginx-https
# 停止
docker stop nginx-https
# 重啟(配置修改后生效)
docker restart nginx-https

5.2 查看日志

# 查看容器啟動(dòng)日志
docker logs nginx-https
# 查看 Nginx 訪問(wèn)日志
cat /opt/nginx-https/logs/access.log
# 查看 Nginx 錯(cuò)誤日志
cat /opt/nginx-https/logs/error.log

5.3 修改配置后生效

# 1. 修改宿主機(jī)配置文件
vim /opt/nginx-https/conf/nginx.conf
# 2. 驗(yàn)證配置語(yǔ)法
docker run --rm -v /opt/nginx-https/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/nginx-https/cert:/etc/nginx/cert nginx:1.21 nginx -t
# 3. 重啟容器
docker restart nginx-https

5.4 刪除容器(如需重裝)

docker stop nginx-https && docker rm nginx-https
# 可選:刪除工作目錄(謹(jǐn)慎操作)
rm -rf /opt/nginx-https

到此這篇關(guān)于Docker部署Nginx HTTPS服務(wù)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker部署Nginx HTTPS服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux搭建Docker環(huán)境的詳細(xì)過(guò)程(最新推薦)

    Linux搭建Docker環(huán)境的詳細(xì)過(guò)程(最新推薦)

    Docker從17.03版本之后分為CE(Community Edition: 社區(qū)版)和EE(Enterprise Edition: 企業(yè)版),相對(duì)于社區(qū)版本,企業(yè)版本強(qiáng)調(diào)安全性,但需付費(fèi)使用,這里我們使用社區(qū)版本即可,這篇文章給大家介紹Linux搭建Docker環(huán)境的詳細(xì)過(guò)程,感興趣的朋友一起看看吧
    2025-04-04
  • Docker在Ubuntu中的部署全流程

    Docker在Ubuntu中的部署全流程

    本文介紹在Linux操作系統(tǒng)Ubuntu的18.04及以上版本中,配置開(kāi)源容器化平臺(tái)和工具集Docker的詳細(xì)方法,其中,我們以配置Docker平臺(tái)的核心組件之一Docker Engine為例來(lái)詳細(xì)介紹,需要的朋友可以參考下
    2024-03-03
  • 解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題

    解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了解決Docker啟動(dòng)Elasticsearch7.x報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker容器訪問(wèn)宿主機(jī)host設(shè)置的域名方式

    docker容器訪問(wèn)宿主機(jī)host設(shè)置的域名方式

    文章討論了在Docker容器中訪問(wèn)宿主機(jī)的網(wǎng)絡(luò)設(shè)置,特別是當(dāng)容器內(nèi)的服務(wù)需要請(qǐng)求一個(gè)在宿主機(jī)hosts文件中定義的域名時(shí),通過(guò)使用`--network=host`模式,容器可以直接使用宿主機(jī)的網(wǎng)絡(luò),從而無(wú)需通過(guò)Docker網(wǎng)關(guān),這樣可以避免端口沖突
    2025-12-12
  • Dockerfile多鏡像構(gòu)建方式

    Dockerfile多鏡像構(gòu)建方式

    這篇文章主要介紹了Dockerfile多鏡像構(gòu)建方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • docker打包Python環(huán)境的過(guò)程詳解

    docker打包Python環(huán)境的過(guò)程詳解

    這篇文章主要介紹了docker打包Python環(huán)境過(guò)程,準(zhǔn)備工作需要大家復(fù)制python程序啟動(dòng)程序,具體操作流程跟隨小編一起看看吧
    2021-08-08
  • Docker搭建私有倉(cāng)庫(kù)之Harbor的步驟

    Docker搭建私有倉(cāng)庫(kù)之Harbor的步驟

    這篇文章主要介紹了Docker搭建私有倉(cāng)庫(kù)之Harbor的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • docker發(fā)布sunnyNgrok實(shí)現(xiàn)內(nèi)外網(wǎng)穿透的方法(容器內(nèi)執(zhí)行命令)

    docker發(fā)布sunnyNgrok實(shí)現(xiàn)內(nèi)外網(wǎng)穿透的方法(容器內(nèi)執(zhí)行命令)

    這篇文章主要介紹了docker上發(fā)布 sunnyNgrok 實(shí)現(xiàn)內(nèi)外網(wǎng)穿透,容器內(nèi)執(zhí)行命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Docker 特權(quán)模式的場(chǎng)景、風(fēng)險(xiǎn)與生產(chǎn)級(jí)安全實(shí)踐?

    Docker 特權(quán)模式的場(chǎng)景、風(fēng)險(xiǎn)與生產(chǎn)級(jí)安全實(shí)踐?

    本文主要介紹來(lái)了Docker 特權(quán)模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • 關(guān)于docker容器優(yōu)雅退出的問(wèn)題詳解

    關(guān)于docker容器優(yōu)雅退出的問(wèn)題詳解

    在Docker大火的今天,我們能夠非常方便的使用容器打包我們的應(yīng)用程序,并且將它在我們的服務(wù)器上部署并運(yùn)行起來(lái)。而下面這篇文章主要給大家介紹了關(guān)于docker容器如何優(yōu)雅退出的問(wèn)題,需要的朋友可以參考下。
    2017-09-09

最新評(píng)論

吐鲁番市| 都兰县| 新建县| 崇左市| 全椒县| 和田市| 永州市| 大新县| 桑植县| 闸北区| 鹤庆县| 固镇县| 六枝特区| 磐石市| 三门峡市| 永济市| 绍兴县| 红河县| 开鲁县| 连江县| 九龙县| 娄烦县| 黄冈市| 茶陵县| 芦溪县| 武汉市| 宿松县| 石家庄市| 成都市| 西乡县| 佛坪县| 乐昌市| 上思县| 平乐县| 永春县| 霍城县| 临夏市| 大竹县| 大冶市| 陵水| 和政县|