反向代理伺服器nginx-proxy-manager

2022-01-30 各種折騰

一直以來,老蘇都是使用群暉內置的反向代理,雖然很方便易用,但在某些情況下顯得並不靈活。比如老蘇打算安裝 Authelia,需要修改 nginx 轉發規則,必須通過 SSH 登錄後找到相應的文件修改,這一點上不如 nginx-proxy-manager,當你習慣後,你會發現 npm 的優點遠不止這點。

什麼是 Nginx Proxy Manager ?

Nginx Proxy Manager 是用於管理 Nginx 代理主機的 Docker 容器,具有簡單、強大的界面。它使您可以輕鬆地轉發到您在家裡或其他地方運行的網站,包括免費的 SSL,而無需對 Nginx 或 Letsencrypt 了解太多。

安裝資料庫

通過 phpMyAdmin 在 MariaDB 10 中新建用戶 npm,創建同名的庫 npm 並授予所有權限。

老蘇試過 MariaDB 5,寫資料庫有問題,表現為登錄不成功,顯示 Bad Gateway 錯誤

安裝鏡像

在群暉上以 Docker 方式安裝。

在註冊表中搜索 nginx-proxy-manager ,選擇第一個 jc21/nginx-proxy-manager,版本選擇 latest。


在 docker 文件夾中,創建一個新文件夾,並將其命名為 npm,再建 2 個子目錄,分別命名為 data 和 letsencrypt

文件夾裝載路徑說明docker/npm/data/data存放數據docker/npm/letsencrypt/etc/letsencrypt存放自動申請證書


埠不衝突就行,不確定的話可以用命令查一下

# 查看埠佔用
netstat -tunlp | grep 埠號

本地埠容器埠2443443208080208181

環境
可變值DB_MYSQL_HOST群暉主機 IP 地址DB_MYSQL_PORT默認為 3306DB_MYSQL_USER根據前面的設置,資料庫用戶為 npmDB_MYSQL_PASSWORD資料庫用戶 npm 的密碼DB_MYSQL_NAME根據前面的設置,庫名為 npm

運行

在瀏覽器中輸入 http://群暉IP:2081 就能看到主界面

默認的帳號:admin@example.com,密碼:changeme

登錄後可以編輯用戶信息

之後是密碼

frp

因為老蘇的寬帶沒有公網 IP ,一直以來都是用 frp 做內網穿透,所以首先要對 frpc.ini 做相應的修改

local_ip 是運行 frpc 的群暉的 IPlocal_port 要根據前面設置的埠進行變更custom_domains 用了泛域名,沒有像在『 frp基礎設置示例詳解  』一文中指向了具體的子域名,例如:nas.laosu.ml
[http_xxxxxx]
type = http
local_ip = 192.168.0.199
local_port = 2080
custom_domains = *.laosu.ml

[https_xxxxxx]
type = https
local_ip = 192.168.0.199
local_port = 2443
custom_domains = *.laosu.ml

證書

進入主菜單的 SSL Certificates

Add SSL Certificate 有兩種方式,一種是在線申請,另一種是添加已有證書

在線申請和我們在『 免費的泛域名https證書自動續期 』一文中介紹的非常類似,需要選擇 DNS 解析服務提供商,以及填寫 token 等參數

老蘇因為已經配置了 Certbot 並實現了自動續期,所以只需要導入現有證書就可以了,Name 老蘇用了域名,這樣比較容易識別

私鑰 Certificate Key 對應 privkey.pem證書 Certificate 對應 fullchain.pem中間證書 Intermediate Certificate 對應 chain.pem

上傳成功後,證書存放在 /data/custom_ssl/ 目錄中以 npm-1 、 npm-2 等子目錄保存

反向代理

進入主菜單的 Hosts

以將 http://192.168.0.197:5000 映射到 https://nas.laosu.ml 為例

因為是 Docker 容器方式運行的,所以即便是本機也不要用 localhost,一定要用 IP默認 Cache Aeeets、Block Common Exploits、Websocket Support 建議都勾上

選擇 SSL 證書

因為準備用 https 協議訪問,所以必須勾選 Force SSL

其他的 HTTP/2 和 HSTS 和群暉內置的是一樣的,可根據需要勾選,沒啥問題的話老蘇建議都勾上

小結

為什麼要另外安裝 nginx proxy manager 而不是用群暉內置的反向代理的原因,老蘇在一開始就講了,裝完之後老蘇還發現了幾個優點:

不用再依賴群暉,這使得老蘇將來可以很方便的切換到其他平臺題外

最終 Authelia 並沒安裝成功,原因是不能在非標的埠上使用。

由於沒有備案的緣故,https 協議不能使用 443 埠

假設你用了非標的 444, Authelia 會自動截掉埠(因為 443 是可以不用寫的),從而導致資源加載失敗👇

Refused to load the image 'https://auth.laosu.ml/favicon.ico' because it violates the following Content Security Policy directive: "default-src 'self'". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.

已經在 Authelia 的 issues 提了,但是作者目前沒有回覆

參考文檔

Nginx Proxy Manager
地址:https://nginxproxymanager.com/

jc21/nginx-proxy-manager: Docker container for managing Nginx proxy hosts with a simple, powerful interface
地址:https://github.com/jc21/nginx-proxy-manager

NGINX proxy manager
地址:https://www.blackvoid.club/nginx-proxy-manager/

Running authelia on a non standard HTTPs port. Base href is not valid. · Issue #2765 · authelia/authelia
地址:https://github.com/authelia/authelia/issues/2765

相關焦點

  • Nginx反向代理伺服器
    Nginx (engine x) 是一個高性能的HTTP和反向代理web伺服器,其特點:1.穩定性極強2.Nginx提供了非常豐富的配置實例
  • 深入淺出反向代理 Web 伺服器Nginx
    反向代理伺服器?經常聽人說到一些術語,如反向代理,那麼什麼是反向代理,什麼又是正向代理呢?正向代理:反向代理【proxy_pass】所謂反向代理,很簡單,其實就是在location這一段配置中的root替換成proxy_pass即可。
  • Nginx反向代理伺服器的配置(詳細)
    Nginx是俄羅斯的程序設計師Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的開源伺服器軟體,Nginx完全使用C語言編寫,可以作為一臺高性能的web伺服器、反向代理伺服器和郵件代理伺服器使用。在高連接並發的場合,Nginx是Apache商業伺服器不錯的替代品。
  • Nginx反向代理實踐
    概述Nginx反向代理(Reverse Proxy):反向代理是指伺服器根據客戶端的請求
  • Nginx 學習 —— 正向代理與反向代理
    1、正向代理和反向代理的概念無論是正向代理,還是反向代理,說到底,就是代理模式的衍生版本罷了。我們都學習過代理設計模式,都知道代理模式中有代理角色和被代理角色,為什麼這麼說,因為這兩個角色對於我們理解正向和反向代理非常重要,下面會講到。
  • Nginx 反向代理與負載均衡
    什麼是反向代理當我們有一個伺服器集群,並且伺服器集群中的每臺伺服器的內容一樣的時候,同樣我們要直接從個人電腦訪問到伺服器集群伺服器的時候無法訪問,必須通過第三方伺服器才能訪問集群這個時候,我們通過第三方伺服器訪問伺服器集群的內容,但是我們並不知道是哪一臺伺服器提供的內容,此種代理方式稱為反向代理什麼是負載均衡公司會建立很多的伺服器
  • CentOS 配置 Nginx 反向代理
    導讀Nginx作為反向代理伺服器被廣泛使用在各大網際網路企業。它簡單易用,可以根據業務的需求將其不同的業務類型代理至不同的伺服器,將整個站點請求壓力按類型分攤到不同的伺服器。該方式使的整個站點請求性能得以極大的提升。本文簡要描述了Nginx幾種不同情形的代理演示,供大家參考。
  • Nginx實現反向代理
    反向代理:在收到客戶端請求之後,會修目標IP位址和埠正向代理:在收到客戶端請求之後,會修源IP位址和埠上遊伺服器:代理伺服器後端的哪些真正給客戶端提供服務的節點
  • 配置Nginx反向代理WebSocket
    不僅能夠保證後端伺服器的隱蔽性,還可以提高網站部署靈活性。今天我們來講一下,如何用Nginx給WebSocket伺服器實現反向代理和負載均衡。什麼是反向代理和負載均衡反向代理(Reverse Proxy)方式是指以代理伺服器來接受Internet上的連接請求,然後將請求轉發給內部網絡上的伺服器。
  • 13.nginx高級配置--反向代理
    另外,我們也了解到了nginx,到目前為止我們還只是把它當作一個普通的 web 伺服器在使用。    現在我們需要在同一臺伺服器上搭建上述所有的服務,那該如何配置訪問呢?如果nginx只是一個普通的web伺服器的話也就不會如此之火了,關鍵是nginx這個「年輕」的「小夥」非常不講武德,這裡不得不提到 nginx 另外一個殺手級應用了--反向代理。
  • Nginx 反向代理、負載均衡圖文教程 !
    當然很多都是隨便一說的玩笑話,聽過一笑便可,不必當真,也不必抱怨了好了,今天就直接來說一下主題吧,前端要了解一些運維的Nginx用法,內容不多,簡單看看就好,這兩個功能在工作當中就夠用了,那麼首先來看個問題,什麼是反向代理與負載均衡什麼是反向代理與負載均衡什麼是反向代理當我們有一個伺服器集群,並且伺服器集群中的每臺伺服器的內容一樣的時候,同樣我們要直接從個人電腦訪問到伺服器集群伺服器的時候無法訪問
  • Nginx 正向代理與反向代理
    而在此之前僅僅使用了過代理軟體,曾經為了訪問google,使用了代理軟體,需要在瀏覽器中配置代理的地址。我只知道有代理這個概念,並不清楚代理還有正向和反向之分,於是趕緊學習一下,補充一下知識。首先弄清楚什麼是正向代理,什麼是反向代理,然後是二者在實際使用中展示的方式是什麼樣的,最後總結一下正向代理用來做什麼,反向代理可以做什麼。
  • 圖文講解,如何使用 Nginx 反向代理、負載均衡
    來源:http://t.cn/AiKual8Y學到老活到老什麼是反向代理與負載均衡Nginx反向代理與負載均衡的實現nginx配置proxy_passUpstream模塊實現負載均衡工作中的簡單使用學到老活到老前端圈一直很新
  • Nginx 反向代理簡單使用
    第三步 配置nginx信息cd nginx-1.19.0./configure --prefix=/usr/local/nginx/sbin/nginx -?./sbin/nginx./sbin/nginx -c /tmp/nginx.conf./sbin/nginx -p /usr/local/nginx/./sbin/nginx -s stop./sbin/nginx -s quit./sbin/nginx -s reload./sbin/nginx -s reopen.
  • Nginx配置反向代理,一篇搞定!
    其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取數據後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器 IP 地址。
  • 代理技術 | 重磅,代理伺服器背後的故事(正向、反向代理)
    之前我們總結過nginx是一款輕量級的web伺服器\代理伺服器,是搭建負載均衡的優選(如何搭建負載均衡,可參考《nginx
  • 誰說前端不需要懂-Nginx反向代理與負載均衡
    今天就直接來說一下主題吧,前端要了解一些運維的Nginx用法,內容不多,簡單看看就好,這兩個功能在工作當中就夠用了,那麼首先來看個問題,什麼是反向代理與負載均衡什麼是反向代理與負載均衡什麼是反向代理當我們有一個伺服器集群,並且伺服器集群中的每臺伺服器的內容一樣的時候,同樣我們要直接從個人電腦訪問到伺服器集群伺服器的時候無法訪問
  • 如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理
    它既可以被安裝為一個獨立的 Web 伺服器,也可以安裝成反向代理 Web 伺服器。在這篇文章,我將討論在安裝了 cPanel 管理系統的 Centos 7 伺服器上安裝 Nginx 作為 Apache 的反向代理伺服器。Nginx 作為前端伺服器用反向代理為靜態文件提供服務,Apache 作為後端為動態文件提供服務。這個設置將整體提高伺服器的性能。
  • 【Nginx】Nginx部署實戰——靜態文件+反向代理+均衡負載+Https+Websocket
    Nginx是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。前一段時間聽說Igor Sysoev被俄羅斯警方帶走了,不知道放出來了沒有。言歸正常,來看一下nginx的相關配置如何滿足我們的日常需求吧。
  • 深入淺出反向代理伺服器「Nginx」
    Nginx ("engine x") 是一個高性能的HTTP和反向代理伺服器,特點是佔有內存少,並發能力強,事實上nginx的 並發能力確實在同類型的網頁伺服器中表現較好,中國 大陸使用nginx網站用戶有:百度、京東、新浪、網易、 騰訊、淘寶等。