NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

Nginx設定nginxWebUI 是一款視覺化圖形化管理nginx設定工具,可使用網頁來快速設定nginx的各項功能,包括http協定轉送、tcp協定轉送、反向代理、負載平衡、靜態html伺服器、ssl憑證自動申請、續約、設定等。配置好後可一鍵產生nginx.conf檔。

Nginx設定視覺化設定檔生成,nginxWebUI圖形化管理設定工具

是一款視覺化圖形化管理,可以使用網頁來快速設定nginx的各項功能,包括http協定轉送、tcp協定轉送、反向代理、負載平衡、靜態html伺服器、ssl憑證自動申請、續約、設定等。配置好後可一鍵生成文件,同時可控制nginx使用此文件進行啟動與重載,完成對nginx的圖形化控制閉環。

nginxWebUI也可管理多個nginx伺服器集群, 隨時一鍵切換到對應伺服器上進行nginx配置,也可以一鍵將某台伺服器配置同步到其他伺服器,方便集群管理。

nginx本身功能複雜, nginxWebUI並不能涵蓋nginx所有功能,但能涵蓋nginx日常90%的功能使用配置,平台沒有涵蓋到的nginx配置項,可以使用自訂參數模板,在conf檔案中產生配置獨特的參數。

部署此專案後,設定nginx再也不用上網各種搜尋設定代碼,再也不用手動申請和設定ssl證書,只需要在本專案中進行增刪改查就可方便的設定和啟動nginx。

Github專案網站:https://github.com/cym1102/nginxWebUI

nginxWebUI官網:https://www.nginxwebui.cn/

什麼是Nginx

Nginx是非同步框架的網頁伺服器,也可以用作反向代理、負載平衡器和HTTP快取。該軟體由俄羅斯程式設計師伊戈爾·賽索耶夫開發並於2004年首次公開發布。 2011年成立同名公司以提供支援服務。 2019年3月11日,Nginx公司被F5網路公司以6.7億美元收購。 Nginx是免費的開源軟體,根據類BSD許可證的條款發布。

nginx官網:https://nginx.org/

Nginx設定nginxWebUI 技術文檔

本專案是基於solon的web系統,資料庫使用h2,因此伺服器上不需要安裝任何資料庫。

本系統透過Let's encrypt申請證書,使用acme.sh腳本進行自動化申請和續簽,開啟續簽的證書將在每天凌晨2點進行續簽, 只有超過60天的證書才會進行續簽,只支援在linux下簽發證書。

當添加tcp/ip轉發配置支援時,一些低版本的nginx可能需要重新編譯,透過添加–with-stream參數指定安裝stream模組才能使用,但在ubuntu 18.04下,官方軟體庫中的nginx已經帶有stream模組,不需要重新編譯。本系統如果配置了tcp轉發項的話,會自動引入ngx_stream_module.so的配置項,如果沒有開啟則不引入,最大限度優化ngnix配置文件。

jar安裝說明

安裝java運行環境和nginx,以Ubuntu作業系統為例:

Ubuntu

apt update apt install openjdk-11-jdk apt install nginx

Centos

yum install java-11-openjdk yum install nginx

Windows

下載JDK安裝套件: https://www.oracle.com/java/technologies/downloads/
下載nginx: http://nginx.org/en/download.html

  • 配置JAVA運行環境
  • JAVA_HOME : JDK安裝目錄
  • Path : JDK安裝目錄\bin
  • 重新啟動電腦

下載nginxWebUI 最新版發行包jar

Linux

mkdir /home/nginxWebUI/ wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar

Windows

直接使用瀏覽器下載 http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar 到D:/home/nginxWebUI/nginxWebUI.jar

有新版本只需要修改路徑中的版本即可

啟動nginxWebUI 程式

Linux

nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &

Windows

java -jar -Dfile.encoding=UTF-8 D:/home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=D:/home/nginxWebUI/

參數說明

--server.port 佔用埠, 預設以8080埠啟動
--project.home 專案設定檔目錄,存放資料庫文件,憑證文件,日誌等, 預設為/home/nginxWebUI/
--spring.database.type=mysql 使用其他資料庫,不填為使用本機h2資料庫,可選擇mysql
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui 資料庫url
--spring.datasource.username=root 資料庫用戶
--spring.datasource.password=pass 資料庫
注意Linux指令最後加一個&號,表示專案後台運行

docker安裝說明

本專案製作了docker映像,支援x86_64/arm64/arm v7 平台,同時包含nginx和nginxWebUI在內,一體化管理與運行nginx。

安裝docker容器環境:

Ubuntu

apt install docker.io

Centos

yum install docker

拉取鏡像

docker pull cym1102/nginxwebui:latest

啟動容器

docker run -itd \ -v /home/nginxWebUI:/home/nginxWebUI \ -e BOOT_OPTIONS="--server.port=8080" \ --privileged=true \ --net=host \ cym1102/nginxwebui:latest

注意:啟動容器時請使用--net=host參數,直接映射本機端口,因為內部nginx可能使用任意一個端口,所以必須映射本機所有端口。
容器需要映射路徑/home/nginxWebUI:/home/nginxWebUI,此路徑下存放專案所有資料文件,包括資料、nginx設定檔、日誌、憑證等,升級鏡像時此目錄可保證專案資料不會遺失,請注意備份。
-e BOOT_OPTIONS 參數可填入java啟動參數,可靠此項參數修改連接埠號碼。 --server.port 佔用端口,不填預設以8080端口啟動。
日誌預設存放在/home/nginxWebUI/log/nginxWebUI.log
另: 使用docker-compose時設定檔如下:

version: "3.2" services: nginxWebUi-server: image: "3.2" services: nginxWebUi-server: image: cym1102/nginxwebui:latest volumes: - type: bind source: "/home/nginxWebUI" target: "/home/nginxWebUI" environment: BOOT_leg -lioo network_mode: "host"

編譯說明

使用maven編譯打包

mvn clean package

使用docker建置映像

docker build -t nginxwebui:latest .

新增開機啟動

編輯service配置

vim /etc/systemd/system/nginxwebui.service
[Unit] Description=NginxWebUI After=syslog.target After=network.target [Service] Type=simple User=root Group=root WorkingDirectory=/home/nginxWebUI ExecStart=/usr/bin/java -jar /home/nginxWebUI/nginxWebUIm-KstartinxWebUI.

之後執行

systemctl daemon-reload systemctl enable nginxwebui.service systemctl start nginxwebui.service

nginx配置nginxwebui 使用說明

影片教學: https://www.bilibili.com/video/BV18A4y1D7GZ
演示地址: http://test.nginxwebui.cn:7070
使用者名稱: admin
密碼: admin

打開 http://xxx.xxx.xxx.xxx:8080 進入首頁

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

登入頁面, 第一次開啟會要求初始化管理員帳號

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

進入系統後, 可在管理員管理裡面新增修改管理員帳號

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在http參數配置中可以設定nginx的http專案,進行http轉送, 預設會給出幾個常用設定, 其他需要的設定可自由增刪改查. 可以勾選開啟日誌追蹤, 產生日誌檔。

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在TCP參數配置中可以配置nginx的stream項目參數, 大多數情況下可不配.

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在反向代理中可設定nginx的反向代理即server項功能, 可開啟ssl功能, 可以直接從網頁上傳pem文件和key文件, 或使用系統內申請的證書, 可以直接開啟http轉跳https功能,也可開啟http2協議

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在負載平衡中可設定nginx的負載平衡即upstream項功能, 在反向代理管理中可選擇代理目標為配置好的負載平衡

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在html靜態檔案上傳中可直接上傳html壓縮套件到指定路徑,上傳後可直接在反向代理中使用,省去在Linux中上傳html檔案的步驟

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

在證書管理中可添加證書, 並進行簽發和續簽, 開啟定時續簽後, 系統會自動續簽即將過期的證書, 注意:證書的簽發是用的acme.sh的dns模式, 需要配合阿里雲的aliKey和aliSecret來使用. 請先申請好aliKey和aliSecretret

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

備份檔案管理, 這裡可以看到nginx.cnf的備份歷史版本, nginx出現錯誤時可以選擇回滾到某一個歷史版本

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

最終產生conf檔,可在此進一步手動修改,確認修改無誤後,可覆蓋本機conf檔,並進行效驗與重啟, 可以選擇產生單一nginx.conf檔還是按網域將各個設定檔分開放在conf.d下

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

遠端伺服器管理, 如果有多台nginx伺服器, 可以都部署上nginxWebUI, 然後登入其中一台, 在遠端管理中新增其他伺服器的ip和使用者名稱密碼, 就可以在一台機器上管理所有的nginx伺服器了.

提供一鍵同步功能, 可以將某台伺服器的資料配置和憑證檔案同步到其他伺服器中

介面開發

本系統提供http介面呼叫, 開啟 http://xxx.xxx.xxx.xxx:8080/doc.html 即可查看smart-doc介面頁面.

介面呼叫需要在http請求header中加入token, 其中token的取得需要先在管理員管理中, 開啟使用者的介面呼叫權限, 然後透過使用者名稱密碼呼叫取得token介面, 才能得到token

NginxWebUI Nginx設定視覺化一鍵產生nginx.conf 設定檔

找回密碼

如果忘記了登入密碼或沒有儲存兩步驟驗證,可依下列教學找回密碼和關閉兩步驟驗證

1.停止nginxWebUI

pkill java

2.使用找回密碼參數執行nginxWebUI.jar

java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true

--project.home 為專案檔案所在目錄

--project.findPass 為是否列印使用者名稱密碼

運行成功後即可列印出全部使用者名稱密碼並關閉兩步驟驗證

 

1/5 - (2 votes)

1 留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *