nginx界面管理工具之nginxWebUI 搭建與使用
一、nginxWebUI
1.nginx網(wǎng)頁配置工具
官網(wǎng)地址: http://www.nginxwebui.cn
源碼地址:https://git.chihiro.org.cn/chihiro/nginxWebUI
2.功能說明
本項目可以使用WebUI配置nginx的各項功能, 包括http協(xié)議轉(zhuǎn)發(fā), tcp協(xié)議轉(zhuǎn)發(fā), 反向代理, 負載均衡, ssl證書自動申請、續(xù)簽、配置等, 最終生成nginx.conf文件并覆蓋nginx的默認配置文件, 完成nginx的最終功能配置。
本項目可管理多個nginx服務(wù)器集群, 隨時一鍵切換到對應(yīng)服務(wù)器上進行nginx配置, 也可以一鍵將某臺服務(wù)器配置同步到其他服務(wù)器, 方便集群管理。
nginx本身功能復(fù)雜, 本項目并不能涵蓋nginx所有功能, 只能配置常用功能, 更高級的功能配置仍然需要在最終生成的nginx.conf中進行手動編寫。
部署此項目后, 配置nginx再也不用上網(wǎng)各種搜索, 再也不用手動申請和配置ssl證書, 只需要在本項目中進行增刪改查就可方便的配置nginx。
3.技術(shù)說明
本項目是基于springBoot的web系統(tǒng), 數(shù)據(jù)庫使用sqlite, 因此服務(wù)器上不需要安裝任何數(shù)據(jù)庫。
其中orm使用了本人自己開源的sqlHelper項目作為orm, 使用sqlite作為數(shù)據(jù)庫, 項目啟動時會釋放一個.sqlite.db到系統(tǒng)用戶文件夾中, 注意進行備份。
sqlHelper是一個可以像 mongodb 一樣使用 sql 數(shù)據(jù)庫的 orm, 解放開發(fā)者對sql數(shù)據(jù)庫表結(jié)構(gòu)的維護工作, 支持sqlite, mysql, postgresql三種數(shù)據(jù)庫, 有興趣的可以了解一下 https://gitee.com/cym1102/sqlHelper。
本系統(tǒng)通過Let’s encrypt申請證書, 使用acme.sh腳本進行自動化申請和續(xù)簽, 開啟續(xù)簽的證書將在每天凌晨 2 點進行續(xù)簽, 只有超過 60 天的證書才會進行續(xù)簽. 只支持在linux下簽發(fā)證書。
因為申請證書必須要使用 80 端口, 因此在申請和續(xù)簽的時候 nginx 將會短暫關(guān)閉,請注意。
添加tcp/ip轉(zhuǎn)發(fā)配置支持時, 一些低版本的 nginx 可能需要重新編譯,通過添加–with-stream參數(shù)指定安裝stream模塊才能使用, 但在ubuntu 18.04下, 官方軟件庫中的nginx已經(jīng)帶有stream模塊, 不需要重新編譯. 本系統(tǒng)如果配置了tcp轉(zhuǎn)發(fā)項的話, 會自動引入ngx_stream_module.so的配置項, 如果沒有開啟則不引入, 最大限度優(yōu)化ngnix配置文件。
二、jar 安裝說明
以Ubuntu操作系統(tǒng)為例, 以下命令請使用root賬戶權(quán)限執(zhí)行
注意:本項目需要在root用戶下運行系統(tǒng)命令,極容易被黑客利用,請一定修改密碼為復(fù)雜密碼
1.安裝java運行環(huán)境和nginx
apt install openjdk-8-jdkapt install nginx
2.下載最新版發(fā)行包jar
wget http://www.nginxwebui.cn/download/nginxWebUI-2.1.6.jar #有新版本只需要修改路徑中的版本即可
3.啟動程序
nohup java -jar -Xmx64m nginxWebUI-2.1.6.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
參數(shù)說明 (都是非必填)
-Xmx64m 最大分配內(nèi)存數(shù)
–server.port 占用端口, 默認以 8080 端口啟動
–project.home 項目配置文件目錄,存放數(shù)據(jù)庫文件,證書文件,日志等, 默認為/home/nginxWebUI/
注意命令最后加一個&號, 表示項目后臺運行
三、docker安裝說明
本項目制作了docker
鏡像, 同時包含nginx
和nginxWebUI
在內(nèi), 一體化管理與運行nginx
.
1.安裝docker容器環(huán)境
apt install docker.io
2.下載鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6
3.啟動容器
docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT\_OPTIONS="--變量名=變量值 --變量名2=變量值2" --privileged=true --net=host registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6 /bin/bash
注意:
啟動容器時請使用–net=host參數(shù), 直接映射本機端口, 因為內(nèi)部nginx可能使用任意一個端口, 所以必須映射本機所有端口.
容器需要映射路徑/home/nginxWebUI:/home/nginxWebUI, 此路徑下存放項目所有數(shù)據(jù)文件, 包括數(shù)據(jù)庫, nginx配置文件, 日志, 證書等, 升級鏡像時, 此目錄可保證項目數(shù)據(jù)不丟失. 請注意備份.
-e BOOT_OPTIONS 參數(shù)可填充java啟動參數(shù), jar安裝教程中的參數(shù)均可使用, 可以靠此項參數(shù)修改端口號等
日志默認存放在/home/nginxWebUI/log/nginxWebUI.log
docker-compose
安裝說明
docker-compose.yaml
文件如下
version: '3'
services:
nginxwebui:
image: registry.cn-hangzhou.aliyuncs.com/cym1102/nginxwebui:2.1.6
container_name: nginxwebui
restart: always
volumes:
- ./data:/home/nginxWebUI
environment:
- BOOT_OPTIONS==-Xmx64m
- TZ=Asia/shanghai
privileged: true
network_mode: "host"
注意:項目下所有數(shù)據(jù)儲存在
yaml
文件同目錄下的data
文件夾中。
使用說明
打開 http://xxx.xxx.xxx.xxx:8080
進入主頁
登錄頁面, 第一次打開會要求初始化管理員賬號
進入系統(tǒng)后, 可在管理員管理里面添加修改管理員賬號
在http參數(shù)配置中可以配置nginx的http項目, 進行http轉(zhuǎn)發(fā), 默認會給出幾個常用配置, 其他需要的配置可自由增刪改查. 可以勾選開啟日志跟蹤, 生成日志跟蹤配置項, 每天 0 點時刻可生成上一天的日志分析報告. 由于日志文件access.log文件過大, 默認只保留 7 天的log文件, 但分析報告可一直保留.
在 TCP 參數(shù)配置中可以配置nginx
的steam
項目參數(shù), 大多數(shù)情況下可不配.
在反向代理中可配置nginx
的反向代理即server
項功能, 可開啟ssl
功能, 可以直接從網(wǎng)頁上上傳pem
文件和key
文件, 或者使用系統(tǒng)內(nèi)申請的證書, 可以直接開啟http
轉(zhuǎn)跳https
功能,也可開啟http2
協(xié)議
在負載均衡中可配置nginx
的負載均衡即upstream
項功能, 在反向代理管理中可選擇代理目標為配置好的負載均衡
在html
靜態(tài)文件上傳中可直接上傳html
壓縮包到指定路徑, 上傳后可直接在反向代理中使用, 省去在Linux
中上傳html
文件的步驟
在證書管理中可添加證書, 并進行簽發(fā)和續(xù)簽, 開啟定時續(xù)簽后, 系統(tǒng)會自動續(xù)簽即將過期的證書。
注意: 證書的簽發(fā)是用的
acme.sh
的dns
模式, 需要配合阿里云的aliKey
和aliSecret
來使用. 請先申請好aliKey
和aliSecret
備份文件管理, 這里可以看到nginx.cnf
的備份歷史版本, nginx
出現(xiàn)錯誤時可以選擇回滾到某一個歷史版本
最終生成conf
文件, 可在此進行進一步手動修改, 確認修改無誤后, 可覆蓋本機conf
文件, 并進行效驗和重啟, 可以選擇生成單一nginx.conf
文件還是按域名將各個配置文件分開放在conf.d
下
log
管理, 在http
配置中如果開啟了log
監(jiān)控的話, 會每天在這里生成日志分析報告.
遠程服務(wù)器管理, 如果有多臺nginx服務(wù)器, 可以都部署上nginxWebUI, 然后登錄其中一臺, 在遠程管理中添加其他服務(wù)器的ip和用戶名密碼, 就可以在一臺機器上管理所有的nginx服務(wù)器了.文章來源:http://www.zghlxwxcb.cn/news/detail-846994.html
提供一鍵同步功能, 可以將某一臺服務(wù)器的數(shù)據(jù)配置和證書文件同步到其他服務(wù)器中文章來源地址http://www.zghlxwxcb.cn/news/detail-846994.html
找回密碼
如果忘記了登錄密碼,可按如下教程找回密碼
apt install sqlite3 #安裝sqlite3命令
sqlite3 /home/nginxWebUI/sqlite.db #讀取sqlite.db文件
select \* from admin; #查找admin表
quit #退出sqlite3
到了這里,關(guān)于nginx界面管理工具之nginxWebUI 搭建與使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!