<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Nginx 可視化神器!復雜配置一鍵生成,監控管理一條龍!

    VSole2022-12-07 09:38:41

    功能說明

    nginxWebUI是一款圖形化管理nginx配置的工具,可以使用網頁來快速配置nginx的各項功能,包括http協議轉發、tcp協議轉發、反向代理、負載均衡、靜態html服務器、ssl證書自動申請、續簽、配置等。配置好后可一建生成nginx.conf文件,同時可控制nginx使用此文件進行啟動與重載,完成對nginx的圖形化控制閉環。

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

    nginx本身功能復雜, nginxWebUI并不能涵蓋nginx所有功能,但能覆蓋nginx日常90%的功能使用配置,平臺沒有涵蓋到的nginx配置項,可以使用自定義參數模板,在conf文件中生成配置獨特的參數。

    部署此項目后,配置nginx再也不用上網各種搜索配置代碼,再也不用手動申請和配置ssl證書,只需要在本項目中進行增刪改查就可方便的配置和啟動nginx。

    技術說明

    本項目是基于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安裝說明

    以Ubuntu操作系統為例:

    注意:本項目需要在root用戶下運行系統命令,極容易被黑客利用,請一定修改密碼為復雜密碼
    1. 安裝java運行環境和nginx

    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
    重啟電腦
    
    1. 下載最新版發行包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
    

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

    1. 啟動程序
    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。推薦:Java面試題

    1. 安裝docker容器環境

    Ubuntu:

    apt install docker.io
    

    Centos:

    yum install docker
    
    1. 拉取鏡像:
    docker pull cym1102/nginxwebui:latest
    
    1. 啟動容器:
    docker run -itd \
      -v /home/nginxWebUI:/home/nginxWebUI \
      -e BOOT_OPTIONS="--server.port=8080" \
      --privileged=true \
      --net=host \
      cym1102/nginxwebui:latest
    

    注意:

    1. 啟動容器時請使用--net=host參數,直接映射本機端口,因為內部nginx可能使用任意一個端口,所以必須映射本機所有端口。
    2. 容器需要映射路徑/home/nginxWebUI:/home/nginxWebUI,此路徑下存放項目所有數據文件,包括數據、nginx配置文件、日志、證書等,升級鏡像時此目錄可保證項目數據不丟失,請注意備份。
    3. -e BOOT_OPTIONS 參數可填充java啟動參數,可以靠此項參數修改端口號。--server.port 占用端口,不填默認以8080端口啟動。
    4. 日志默認存放在/home/nginxWebUI/log/nginxWebUI.log

    另: 使用docker-compose時配置文件如下:

    version: "3.2"
    services:
      nginxWebUi-server:
        image: cym1102/nginxwebui:latest
        volumes:
          - type: bind
            source: "/home/nginxWebUI"
            target: "/home/nginxWebUI"
        environment:
          BOOT_OPTIONS: "--server.port=8080"
        privileged: true
        network_mode: "host"
    

    編譯說明

    使用maven編譯打包

    mvn clean package
    

    使用docker構建鏡像

    docker build -t nginxwebui:latest .
    

    添加開機啟動

    1. 編輯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/nginxWebUI.jar
    Restart=always
     
    [Install]
    WantedBy=multi-user.target
    

    之后執行

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

    使用說明

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

    登錄頁面,第一次打開會要求初始化管理員賬號

    進入系統后,可在管理員管理里面添加修改管理員賬號

    在http參數配置中可以配置nginx的http項目,進行http轉發,默認會給出幾個常用配置,其他需要的配置可自由增刪改查。可以勾選開啟日志跟蹤,生成日志文件。

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

    在反向代理中可配置nginx的反向代理即server項功能,可開啟ssl功能,可以直接從網頁上上傳pem文件和key文件,或者使用系統內申請的證書,可以直接開啟http轉跳https功能,也可開啟http2協議。推薦:Java面試題

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

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

    在證書管理中可添加證書,并進行簽發和續簽,開啟定時續簽后,系統會自動續簽即將過期的證書。

    注意:證書的簽發是用的acme.sh的dns模式,需要配合阿里云的aliKey和aliSecret來使用。請先申請好aliKey和aliSecret

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

    最終生成conf文件,可在此進行進一步手動修改,確認修改無誤后,可覆蓋本機conf文件,并進行效驗和重啟,可以選擇生成單一nginx.conf文件還是按域名將各個配置文件分開放在conf.d下

    遠程服務器管理,如果有多臺nginx服務器,可以都部署上nginxWebUI,然后登錄其中一臺,在遠程管理中添加其他服務器的ip和用戶名密碼,就可以在一臺機器上管理所有的nginx服務器了。推薦:Java面試題

    提供一鍵同步功能,可以將某一臺服務器的數據配置和證書文件同步到其他服務器中

    接口開發

    本系統提供http接口調用,打開 http://xxx.xxx.xxx.xxx:8080/doc.html 即可查看smart-doc接口頁面。

    接口調用需要在http請求header中添加token,其中token的獲取需要先在管理員管理中,打開用戶的接口調用權限,然后通過用戶名密碼調用獲取token接口,才能得到token

    找回密碼

    如果忘記了登錄密碼或沒有保存兩步驗證,可按如下教程找回密碼和關閉兩步驗證

    1. 停止nginxWebUI
    pkill java
    
    1. 使用找回密碼參數運行nginxWebUI.jar
    java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
    
    • --project.home 為項目文件所在目錄
    • --project.findPass 為是否打印用戶名密碼

    運行成功后即可打印出全部用戶名密碼并關閉兩步驗證

    開源地址:

    • https://github.com/cym1102/nginxWebUI
    nginx可視化管理
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    配置好后可一建生成nginx.conf文件,同時可控制nginx使用此文件進行啟動與重載,完成對nginx的圖形化控制閉環。本系統通過Let's encrypt申請證書,使用acme.sh腳本進行自動化申請和續簽,開啟續簽的證書將在每天凌晨2點進行續簽, 只有超過60天的證書才會進行續簽,只支持在linux下簽發證書。
    騰訊安全威脅情報中心推出2023年10月份必修安全漏洞清單
    NTIP聚焦多源威脅情報管理,全面提供多源情報接入、融合存儲、情報生命周期管理、情報共享輸出、威脅預警、情報查詢展示等能力。作為威脅情報體系的關鍵組件,NTIP支持客戶在離線、在線、云計算等不同環境下,融匯多方情報數據并整合應用到自身安全體系中,全面提升威脅檢測和響應能力。
    痛苦的純文本日志管理日子一去不復返了。雖然純文本數據在某些情況下仍然很有用,但是在進行擴展分析以收集有洞察力的基礎設施數據并改進代碼質量時,尋找一個可靠的日志管理解決方案是值得的,該解決方案可以增強業務工作流的能力。 日志不是一件容易處理的事情,但無論如何都是任何生產系統的一個重要方面。當您面臨一個困難的問題時,使用日志管理解決方案要比在遍布系統環境的無休止的文本文件循環中穿梭容易得多。
    我經常聽到朋友問,是否有更好的Web日志安全性分析工具? 首先,我們應該清楚的是,日志文件不僅可以幫助我們追蹤入侵者的來源并找到其攻擊路徑,而且在正常的操作和維護中,日志還可以反映出許多安全攻擊。 一個簡單易用的Web日志分析工具可以大大提高效率。當前,行業中有許多日志分析工具。今天,我們推薦十種易于使用的Web日志安全性分析工具。
    最牛逼的集群監控系統,它始終位列第一!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类