
Nginx反向代理中文管理終極指南nginx-proxy-manager-zh快速上手指南【免費(fèi)下載鏈接】nginx-proxy-manager-zh基于nginx-proxy-manager翻譯的中文版本項(xiàng)目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh周五晚上十點(diǎn)你剛把公司新開發(fā)的內(nèi)網(wǎng)應(yīng)用部署好老板的語音消息就彈了過來明天客戶要從外面訪問你處理一下。你熟練地打開服務(wù)器準(zhǔn)備給 Nginx 寫反向代理配置結(jié)果一個(gè)小時(shí)過去了你還卡在location寫法和certbot的證書簽發(fā)上。這個(gè)場景是不是有點(diǎn)熟悉nginx-proxy-manager-zh 就是為終結(jié)這種配置地獄而生的——它是基于廣受歡迎的 nginx-proxy-manager 完整翻譯的中文版本把反向代理、SSL 證書、訪問控制這些原本要靠命令行和配置文件才能搞定的事情全部搬進(jìn)了一個(gè)直觀的網(wǎng)頁界面。你不需要懂 Nginx 語法甚至不需要會 Linux就能把域名、證書、內(nèi)網(wǎng)服務(wù)管理得井井有條。圖1登錄后第一眼看到的中文儀表盤系統(tǒng)里有多少服務(wù)、狀態(tài)如何一目了然它到底解決了什么先算一筆賬反向代理聽起來很高深其實(shí)可以類比成寫字樓的前臺訪客外部請求到了樓下前臺Nginx負(fù)責(zé)核驗(yàn)身份、查通訊錄然后把訪客帶到對應(yīng)的公司內(nèi)網(wǎng)服務(wù)。復(fù)雜的是這個(gè)前臺原本要你用純文本配置文件一點(diǎn)點(diǎn)寫出來寫錯一個(gè)標(biāo)點(diǎn)整個(gè)服務(wù)可能就掛了。場景傳統(tǒng)手寫 Nginx 配置nginx-proxy-manager-zh新增一個(gè)代理手寫server{}、location、proxy_pass改完還得 reload網(wǎng)頁填域名、IP、端口點(diǎn)保存即生效配置 SSL 證書手動裝 certbot、跑命令、處理續(xù)期和報(bào)錯界面勾選 Lets Encrypt自動申請、自動續(xù)期設(shè)置訪問白名單手寫allow/deny規(guī)則界面拖幾個(gè)選項(xiàng)或直接加用戶認(rèn)證多人協(xié)作幾個(gè)人共用一個(gè)服務(wù)器賬號誰改了什么全靠猜每人獨(dú)立賬號操作全程有審計(jì)日志一句話總結(jié)別人花一小時(shí)干完的活你大概五分鐘而且是全中文界面。打開工具箱看看里面有什么代理主機(jī)把任意域名指向內(nèi)網(wǎng)服務(wù)最常用的核心功能重定向主機(jī)老域名 301 跳轉(zhuǎn)到新站點(diǎn)幾秒鐘配好SSL 證書管理Lets Encrypt 免費(fèi)證書一鍵簽發(fā)、自動續(xù)期還支持上傳自定義證書訪問控制列表IP 黑白名單、用戶名密碼雙重保護(hù)多用戶與權(quán)限給同事開賬號精細(xì)到每個(gè)菜單的可見和可操作404 主機(jī)Dead Host給亂解析的域名一個(gè)體面的兜底頁面流Stream轉(zhuǎn)發(fā)SSH、數(shù)據(jù)庫這類 TCP/UDP 服務(wù)也能轉(zhuǎn)發(fā)審計(jì)日志誰在什么時(shí)候改了什么全都記錄在案自定義配置高級玩家還能在界面里直接塞一段自定義 Nginx 配置帶你把第一臺服務(wù)真正跑起來光說不練沒意思下面我們從零開始把一套能對外提供服務(wù)的環(huán)境搭出來。整個(gè)過程就像領(lǐng)著你看一遍你跟著點(diǎn)就行。第一步確認(rèn)你有 Docker 環(huán)境。這是唯一的前置條件。Docker 會把整個(gè)項(xiàng)目連同運(yùn)行環(huán)境打包成鏡像你不需要在服務(wù)器上裝 Node.js、Nginx 或 Python省去一大堆依賴糾紛。第二步寫一個(gè)部署配置文件。在任意目錄新建文件docker-compose.yml內(nèi)容如下version: 3 services: app: image: chishin/nginx-proxy-manager-zh:release restart: always ports: - 80:80 - 81:81 - 443:443 volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt簡單解釋三個(gè)關(guān)鍵點(diǎn)80和443是將來對外提供服務(wù)的入口81是管理界面的端口務(wù)必保留兩個(gè)volumes目錄分別存放數(shù)據(jù)庫和 SSL 證書刪容器不會丟數(shù)據(jù)備份也靠它們。第三步啟動并等待就緒。docker-compose up -d等一兩分鐘讓服務(wù)初始化完成然后瀏覽器訪問http://你的服務(wù)器IP:81會看到登錄頁面圖2管理界面的登錄入口首次登錄后系統(tǒng)會強(qiáng)制要求修改密碼第四步用默認(rèn)賬號登錄馬上改密碼。初始賬號是adminexample.com密碼changeme。登錄后系統(tǒng)會立刻要求你更新管理員信息——別跳過這是你整個(gè)系統(tǒng)的第一道門。第五步添加第一個(gè)代理主機(jī)。假設(shè)你有個(gè)應(yīng)用跑在服務(wù)器本機(jī)的3000端口想用myapp.example.com對外提供服務(wù)。進(jìn)入主機(jī) → 代理主機(jī)點(diǎn)擊添加代理主機(jī)域名填myapp.example.com轉(zhuǎn)發(fā)主機(jī)名填127.0.0.1同機(jī)部署或?qū)?yīng)的內(nèi)網(wǎng) IP轉(zhuǎn)發(fā)端口填3000保存。圖3添加代理主機(jī)的表單域名、協(xié)議、目標(biāo)主機(jī)和端口都在這一頁搞定第六步順手把 SSL 證書也辦了。同一個(gè)表單切到 SSL 標(biāo)簽頁勾選Lets Encrypt填上你的郵箱保存。系統(tǒng)會自動完成證書申請之后每次快到期都會自動續(xù)期你幾乎感覺不到它的存在。圖4證書列表頁可以看到每張證書的頒發(fā)機(jī)構(gòu)和到期時(shí)間到這一步你的第一個(gè) HTTPS 服務(wù)已經(jīng)上線了。全程沒有寫過一行 Nginx 配置沒有敲過一條 certbot 命令這就是這套工具最核心的價(jià)值。老手才懂的幾個(gè)小機(jī)關(guān)1. 別用host.docker.internal連宿主機(jī)。很多人配代理時(shí)習(xí)慣用它訪問宿主機(jī)服務(wù)但它只在特定 Docker 版本里可靠。更穩(wěn)的做法是讓 NPM 容器和你其他容器在同一個(gè)自定義網(wǎng)絡(luò)里直接用服務(wù)名訪問。你的docker-compose.yml里給所有服務(wù)加同一段networks聲明即可。2. 證書申請失敗九成是端口和域名的問題。Lets Encrypt 驗(yàn)證請求必須從外網(wǎng)通過80端口到達(dá)你的服務(wù)器域名也必須真實(shí)解析到這臺服務(wù)器。先ping一下域名確認(rèn)解析再確認(rèn)云廠商的安全組放開了80和443比反復(fù)重試證書申請高效得多。3. 生產(chǎn)環(huán)境建議換數(shù)據(jù)庫。默認(rèn)用 SQLite單機(jī)完全夠用如果服務(wù)多、并發(fā)高可以在backend/config/default.json里切換 MySQL 或 PostgreSQL配置好連接參數(shù)重啟即可遷移由項(xiàng)目自動完成。4. 敏感服務(wù)加雙重鎖。先建一個(gè)訪問控制列表限制來源 IP再在列表里勾選滿足任一條件通過加一組用戶名密碼。兩層都過了才放行日志里還能看到是誰在訪問。圖5訪問列表頁面IP 限制和用戶認(rèn)證都可以在這里組合使用5. 升級前先備份升級只要三行命令。把./data和./letsencrypt兩個(gè)目錄復(fù)制一份就能完整備份。升級則依次執(zhí)行docker-compose down、docker-compose pull、docker-compose up -d數(shù)據(jù)庫結(jié)構(gòu)升級會自動完成。你可能會問的幾個(gè)問題Q1我不會 Docker能用這個(gè)項(xiàng)目嗎能但強(qiáng)烈建議學(xué)一下。Docker 是這套工具最省心的部署方式裝好 Docker 后只需要復(fù)制一段配置、敲一行命令比手動裝 Nginx、Node、數(shù)據(jù)庫再逐個(gè)配環(huán)境簡單得多。如果真的不想用 Docker也可以git clone https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh拿到全部源碼按照backend/和frontend/里的說明在本地直接運(yùn)行。Q2證書申請一直失敗最可能是什么原因按優(yōu)先級排查域名解析是否正確指向服務(wù)器 → 服務(wù)器80/443端口是否被防火墻或云安全組攔截 → 是否已有其他服務(wù)占用了這兩個(gè)端口。另外注意申請證書的域名必須是你真實(shí)擁有且能收到驗(yàn)證請求的別拿沒解析的域名去試。Q3配置完代理還是訪問不了怎么查先用docker logs 容器名看 NPM 容器的日志再確認(rèn)目標(biāo)服務(wù)本身能訪問比如在服務(wù)器上curl 127.0.0.1:3000試試。最后檢查代理主機(jī)表單里轉(zhuǎn)發(fā)主機(jī)名是不是寫了容器無法解析的地址同機(jī)部署寫127.0.0.1跨容器寫容器名。Q4想讓同事一起管理但又不想給他全部權(quán)限在用戶頁面新建賬號然后在權(quán)限設(shè)置里把代理主機(jī)、重定向主機(jī)等資源的權(quán)限從可管理改成僅查看。同事能看到所有配置但不能亂動管理權(quán)依然在你手里。系統(tǒng)還有審計(jì)日志可以隨時(shí)回看每個(gè)人的操作記錄。圖6給團(tuán)隊(duì)成員分配精細(xì)權(quán)限實(shí)現(xiàn)安全的多人協(xié)作Q5升級后界面和數(shù)據(jù)會變嗎不會。項(xiàng)目會自動遷移數(shù)據(jù)庫結(jié)構(gòu)你的配置和證書原樣保留。唯一要注意的是升級前看一眼docker-compose.yml確認(rèn)鏡像標(biāo)簽不是舊版鎖定的用文中這個(gè)release標(biāo)簽就能持續(xù)跟隨更新。現(xiàn)在輪到你了回顧一下nginx-proxy-manager-zh 把反向代理、SSL 證書、訪問控制這三件最讓運(yùn)維頭疼的事壓縮成了幾個(gè)表單頁面Docker 一行命令完成部署默認(rèn)中文界面首次登錄五分鐘內(nèi)就能跑起第一臺 HTTPS 服務(wù)。對個(gè)人開發(fā)者它讓家里那臺小服務(wù)器上的 NAS、博客、下載工具都能安全地暴露出去對團(tuán)隊(duì)它提供了權(quán)限管理和審計(jì)日志多個(gè)人協(xié)作也不會亂套。下一步很簡單打開你的服務(wù)器按文章第二步的配置創(chuàng)建docker-compose.yml執(zhí)行docker-compose up -d然后打開81端口。等你把第一個(gè)代理主機(jī)配上 SSL 證書、看到那個(gè)綠色的小鎖圖標(biāo)時(shí)你會回來感謝周五晚上那個(gè)決定動手的自己。【免費(fèi)下載鏈接】nginx-proxy-manager-zh基于nginx-proxy-manager翻譯的中文版本項(xiàng)目地址: https://gitcode.com/gh_mirrors/ng/nginx-proxy-manager-zh創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考