《寶塔 Nginx SSL 端口管理實戰指南:域名解析、端口沖突與后端代理解析》

📢 Nginx & SSL 端口管理分析

1?? 域名解析與 SSL 申請失敗分析

在使用寶塔申請 www.mywebsite.test 的 SSL 證書時,遇到了解析失敗的問題。最初,我認為 www 只是一個附加的前綴,不屬于域名的關鍵部分,因此只為 mywebsite.test 配置了解析,而沒有為 www.mywebsite.test 添加 DNS 記錄。

然而,在 SSL 申請過程中,Let’s Encrypt 需要驗證 www.mywebsite.test 是否可以被正確解析并訪問,而由于缺少 DNS 記錄,驗證失敗,導致 SSL 申請無法成功。

分析原因

  1. www.mywebsite.testmywebsite.test 是獨立的域名,需要單獨解析。
  2. 申請 SSL 證書時,每個域名(包括 www 版本)都必須有對應的 DNS 解析
  3. 訪問 www.mywebsite.test 時,如果沒有 DNS 解析,服務器無法找到該域名對應的 IP,導致驗證失敗。

解決方案

在 DNS 解析控制臺為 www.mywebsite.test 添加 A 記錄,使其指向服務器 IP,等待解析生效后,重新申請 SSL 證書。

nslookup www.mywebsite.test  # 確認解析是否生效

此外,也可以為 mywebsite.test 配置 CNAME 記錄,讓 www 自動指向主域名,減少維護成本:

www  CNAME  mywebsite.test

2?? Nginx 443 端口沖突問題

在配置多個站點時,發現 www.mywebsite.testwww.anotherwebsite.test 都監聽 443 端口,疑惑是否會產生沖突。

分析

Nginx 采用 SNI(Server Name Indication) 機制,通過 server_name 識別不同的域名,并選擇相應的 SSL 證書,因此多個站點可以共用 443 端口,不會產生端口沖突。

示例配置

server {listen 443 ssl;server_name www.mywebsite.test;
}server {listen 443 ssl;server_name www.anotherwebsite.test;
}

訪問 https://www.mywebsite.test 時,Nginx 會匹配正確的 server_name 并使用對應 SSL 證書。

3?? Nginx 443 端口是否影響后端服務

如果后端服務運行在同一臺服務器,是否會與 Nginx 監聽 443 端口發生沖突?

分析

  • Nginx 作為反向代理,通常監聽 443 端口,將請求轉發到不同的后端端口(如 84435000)。
  • 只要后端服務 不直接監聽 443 端口,則不會發生端口沖突。

示例

如果后端服務監聽 5000 端口,則 Nginx 可以代理流量:

server {listen 443 ssl;server_name api.mywebsite.test;location / {proxy_pass http://127.0.0.1:5000;}
}

4?? 如果后端服務未通過 Nginx 代理

假設后端服務運行在 5000 端口,但 未通過 Nginx 代理,則會導致以下問題:

? 問題

  1. 后端服務無法使用 HTTPS
    • 由于 SSL 證書通常由 Nginx 處理,直接訪問 http://服務器IP:5000 時,連接不會加密。
  2. 需要手動開放端口
    • 必須手動在防火墻中允許 5000 端口,否則外部無法訪問。
    sudo ufw allow 5000
    
  3. API 端口暴露風險
    • 直接暴露 5000 端口,使 API 端點容易成為攻擊目標。

? 推薦做法

使用 Nginx 代理后端服務,使其支持 HTTPS,并統一流量管理。

server {listen 443 ssl;server_name api.mywebsite.test;location / {proxy_pass http://127.0.0.1:5000;}
}

這樣,用戶可以通過 https://api.mywebsite.test 訪問后端,而后端仍然運行在 5000 端口。

🔥 總結

  • www 版本和非 www 版本的域名需要單獨解析,不能默認互通。
  • 多個站點可以共用 443 端口,Nginx 通過 server_name 匹配不同站點,不會沖突。
  • 后端服務不應直接監聽 443 端口,而是讓 Nginx 代理 HTTPS 訪問。
  • 如果后端未通過 Nginx 代理,API 端口可能暴露,且無法使用 HTTPS,存在安全風險。

推薦最佳實踐:
? 使用 Nginx 代理后端 API,讓所有流量都走 HTTPS,避免端口暴露和安全風險。

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

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

相關文章

java和Springboot和vue開發的企業批量排班系統人臉識別考勤打卡系統

演示視頻: https://www.bilibili.com/video/BV1KU9iYsEBU/?spm_id_from888.80997.embed_other.whitelist&t52.095574&bvidBV1KU9iYsEBU 主要功能: 管理員管理員工,采集員工人臉特征值存入數據庫,可選擇多個員工批量排班…

DeepSeek學習規劃

DeepSeek是一個專注于深度學習和人工智能技術研究與應用的平臺,旨在通過系統化的學習和實踐,幫助用戶掌握深度學習領域的核心知識和技能。為了在DeepSeek平臺上高效學習,制定一個科學合理的學習規劃至關重要。以下是一個詳細的學習規劃&#…

打開 Windows Docker Desktop 出現 Docker Engine Stopped 問題

一、關聯文章: 1、Docker Desktop 安裝使用教程 2、家庭版 Windows 安裝 Docker 沒有 Hyper-V 問題 3、安裝 Windows Docker Desktop - WSL問題 二、問題解析 打開 Docker Desktop 出現問題,如下: Docker Engine Stopped : Docker引擎停止三、解決方法 1、檢查服務是否…

突破Ajax跨域困境,解鎖前端通信新姿勢

一、引言 在當今的 Web 開發領域,前后端分離的架構模式已經成為主流,它極大地提升了開發效率和項目的可維護性。在這種開發模式下,前端通過 Ajax 技術與后端進行數據交互,然而,跨域問題卻如影隨形,成為了開…

Mercury、LLaDA 擴散大語言模型

LLaDA 參考: https://github.com/ML-GSAI/LLaDA https://ml-gsai.github.io/LLaDA-demo/ 在線demo: https://huggingface.co/spaces/multimodalart/LLaDA Mercury 在線demo: https://chat.inceptionlabs.ai/ 速度很快生成

Rust~String、str、str、String、Box<str> 或 Box<str>

Rust語言圣經中定義 str Rust 語言類型大致分為兩種:基本類型和標準庫類型,前者由語言特性直接提供,后者在標準庫中定義 str 是唯一定義在 Rust 語言特性中的字符串,但也是幾乎不會用到的字符串類型 str 字符串是 DST 動態大小…

大數據SQL調優專題——底層調優

引入 上一篇我們提到了調優的常見切入點,核心就是通過數據產出情況發現問題,借助監控等手段收集信息排查瓶頸在哪,最后結合業務理解,等價重寫思路去解決問題。 在實際工作場景中,去保證數據鏈路產出SLA的時候&#x…

Hue 編譯異常:ImportError: cannot import name ‘six‘ from ‘urllib3.packages‘

個人博客地址:Hue 編譯異常:ImportError: cannot import name six from urllib3.packages | 一張假鈔的真實世界 在編譯Hue的時候出現錯誤信息如下: Running /home/zhangjc/ysten/git/ysten-hue/build/env/bin/hue makemigrations --noinpu…

計算機網絡——詳解TCP三握四揮

文章目錄 前言一、三次握手1.1 三次握手流程1.2 tcp為什么需要三次握手建立連接? 二、四次揮手2.1 四次揮手流程2.2 為什么是四次,不是三次?2.3 為什么要等待2msl?2.4 TCP的保活計時器 前言 TCP和UDP是計算機網絡結構中運輸層的兩…

# C# 中堆(Heap)與棧(Stack)的區別

在 C# 中,堆和棧是兩種不同的內存分配機制,它們在存儲位置、生命周期、性能和用途上存在顯著差異。理解堆和棧的區別對于優化代碼性能和內存管理至關重要。 1. 棧(Stack) 1.1 定義 棧是一種后進先出(LIFO&#xff0…

如何把圖片或者圖片地址存到 MySQL 數據庫中以及如何將這些圖片數據通過 JSP 顯示在網頁中

如何優雅地管理圖片:從MySQL數據庫存儲到JSP展示的全流程解析 在互聯網時代,一張引人入勝的圖片往往能為網站帶來巨大的流量。而作為開發者的我們,如何高效地管理和展示這些圖片資源則成為了一項重要的技術挑戰。今天,我們就一起…

「拼好幀」小黃鴨 Lossless Scaling 軟件介紹與下載

「拼好幀」小黃鴨 Lossless Scaling 軟件介紹與下載 在游戲和視頻播放時,你是否遇到過分辨率不匹配、畫質模糊的問題?今天給大家介紹一款神器——Lossless Scaling(拼好幀),也被玩家們親切地稱為“小黃鴨”&#xff0…

科普|無人機專業術語

文章目錄 前言一、飛控二、電調三、通道四、2S、3S、4S電池五、電池后面C是什么意思?六、電機的型號七、什么是電機的KV值?八、螺旋槳的型號九、電機與螺旋槳的搭配 前言 無人機飛控系統控制飛行姿態,電調控制電機轉速,遙控器通道控制飛行動作。電池C…

和鯨科技攜手四川氣象,以 AI 的力量賦能四川氣象一體化平臺建設

氣象領域與農業、能源、交通、環境科學等國計民生關鍵領域緊密相連,發揮著不可替代的重要作用。人工智能技術的迅猛發展,為氣象領域突破困境帶來了新的契機。AI 技術能夠深度挖掘氣象大數據中蘊含的復雜信息,助力人類更精準地把握自然規律&am…

Linux mount命令

Linux mount命令是經常會使用到的命令,它用于掛載Linux系統外的文件。 一、掛載功能介紹 掛載方法:mount DECE MOUNT_POINT 命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir device:指明要掛載的設備&…

《Operating System Concepts》閱讀筆記:p177-p178

《Operating System Concepts》學習第 18 天,p177-p178 總結,總計 2 頁。 一、技術總結 1.implicit thread A programming model that transfers the creation and management of threading from application developers to compilers and run-time l…

Redis緩存一致性難題:如何讓數據庫和緩存不“打架”?

標題:Redis緩存一致性難題:如何讓數據庫和緩存不“打架”?(附程序員脫發指南) 導言:當數據庫和緩存成了“異地戀” 想象一下:你剛在美團下單了一份麻辣小龍蝦,付款后刷新頁面&#…

委托者模式(掌握設計模式的核心之一)

目錄 問題: 舉例: 總結:核心就是利用Java中的多態來完成注入。 問題: 今天刷面經,刷到裝飾者模式,又進階的發現委托者模式,發現還是不理解,特此記錄。 舉例: ?老板?…

[密碼學實戰]Java實現SM4加解密(ecb,cbc)及工具驗證

前言 在現代信息安全領域,數據加密技術是保障數據安全的核心手段之一。SM4作為中國國家密碼管理局發布的對稱加密算法,因其高效性和安全性,廣泛應用于金融、政務、通信等領域。本文將詳細介紹如何使用Java實現SM4的加解密操作,并深入探討SM4的幾種常見加密模式及其原理。 …

動態規劃刷題

文章目錄 動態規劃三步問題題目解析代碼 動態規劃 1. 狀態表示:dp[i],表示dp表中i下標位置的值 2. 狀態轉移方程:以i位置位置的狀態,最近的一步來劃分問題,比如可以將狀態拆分成前狀態來表示現狀態,dp[i] …