Skip to content

Latest commit

 

History

History
337 lines (241 loc) · 10.5 KB

File metadata and controls

337 lines (241 loc) · 10.5 KB
Nginx UI Logo

Nginx UI

Yet another Nginx Web UI

Nginx 網路管理介面,由 0xJackyHintayAkino 開發。

Build and Publish

English | Español | 简体中文 | 繁體中文

目錄
  1. 關於專案
  2. 入門指南
  3. 手動建置
  4. Linux 安裝指令
  5. Nginx 反向代理設定範例
  6. 貢獻
  7. 贊助
  8. 開源軟體授權條款

關於專案

Dashboard

線上預覽

網址:https://demo.nginxui.com

  • 使用者:admin
  • 密碼:admin

特色

  • 線上檢視伺服器 CPU、記憶體、系統負載、磁碟使用率等指標
  • 設定修改後會自動備份,可以對比任意版本或恢復到任意版本
  • 支援鏡像操作到多個叢集節點,輕鬆管理多伺服器環境
  • 匯出加密的 Nginx/NginxUI 設定,方便快速部署和恢復到新環境
  • 增強版線上 ChatGPT 助手,支援多種模型,包括顯示 Deepseek-R1 的思考鏈,幫助您更好地理解和最佳化設定
  • MCP (Model Context Protocol) 讓 AI 代理程式與 Nginx UI 互動,實現自動化設定管理和服務控制
  • 一鍵申請和自動續簽 Let's encrypt 憑證
  • 線上編輯 Nginx 設定檔,編輯器支援大模型代碼補全和 Nginx 設定語法醒目提示
  • 線上檢視 Nginx 日誌
  • 使用 Go 和 Vue 開發,發行版本為單個可執行檔案
  • 儲存設定後自動測試設定檔並重新載入 Nginx
  • 基於網頁瀏覽器的高階命令列終端
  • 支援暗黑模式
  • 自適應網頁設計

國際化

  • 英語
  • 簡體中文
  • 繁體中文

我們歡迎您將專案翻譯成任何語言。

入門指南

使用前注意

Nginx UI 遵循 Debian 的網頁伺服器設定檔標準。建立的網站設定檔將會放置於 Nginx 設定資料夾(自動偵測)下的 sites-available 中,啟用後的網站將會建立一份設定檔軟連結檔到 sites-enabled 資料夾。您可能需要提前調整設定檔的組織方式。

對於非 Debian (及 Ubuntu) 作業系統,您可能需要將 nginx.conf 設定檔中的內容修改為如下所示的 Debian 風格。

http {
	# ...
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

更多資訊請參閱:debian/conf/nginx.conf

安裝

Nginx UI 可在以下作業系統中使用:

  • macOS 11 Big Sur 及之後版本(amd64 / arm64)
  • Windows 10 及之後版本(x86 /amd64 / arm64)
  • Linux 2.6.23 及之後版本(x86 / amd64 / arm64 / armv5 / armv6 / armv7 / mips32 / mips64 / riscv64 / loongarch64)
    • 包括但不限於 Debian 7 / 8、Ubuntu 12.04 / 14.04 及後續版本、CentOS 6 / 7、Arch Linux
  • FreeBSD
  • OpenBSD
  • Dragonfly BSD
  • Openwrt

您可以在 最新釋出 (latest release) 中下載最新版本,或使用 Linux 安裝指令

使用方法

第一次執行 Nginx UI 時,請在網頁瀏覽器中存取 http://<your_server_ip>:<listen_port> 完成後續設定。

透過執行檔案執行

在終端中執行 Nginx UI

nginx-ui -config app.ini

在終端使用 Control+C 結束 Nginx UI。

在背景執行 Nginx UI

nohup ./nginx-ui -config app.ini &

使用以下命令停止 Nginx UI。

kill -9 $(ps -aux | grep nginx-ui | grep -v grep | awk '{print $2}')

使用 Systemd

如果你使用的是 Linux 安裝指令,Nginx UI 將作為 nginx-ui 守護行程安裝在 systemd 中。請使用 systemctl 指令控制。

啟動 Nginx UI

systemctl start nginx-ui

停止 Nginx UI

systemctl stop nginx-ui

重啟 Nginx UI

systemctl restart nginx-ui

使用 Docker

您可以在 docker 中使用我們提供的 uozi/nginx-ui:latest 映象,此映象基於 nginx:latest 建置。您可以直接將其監聽到 80 和 443 埠以取代宿主機上的 Nginx。

注意:對映到 /etc/nginx 的資料夾應是一個空資料夾。

Docker 範例

docker run -dit \
  --name=nginx-ui \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -v /mnt/user/appdata/nginx:/etc/nginx \
  -v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -p 8080:80 -p 8443:443 \
  uozi/nginx-ui:latest

手動建置

對於沒有官方建置版本的作業系統,可以嘗試手動建置。

相依性

  • Make

  • Golang 1.23+

  • node.js 21+

    npx browserslist@latest --update-db

建置前端

請在 app 資料夾中執行以下命令。

pnpm install
pnpm build

建置後端

請先完成前端編譯,再回到專案的根目錄執行以下命令。

go generate
go build -tags=jsoniter -ldflags "$LD_FLAGS -X 'github.com/0xJacky/Nginx-UI/settings.buildTime=$(date +%s)'" -o nginx-ui -v main.go

Linux 安裝指令

基本用法

安裝或升級

bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install

一鍵安裝指令預設的監聽連接埠為 9000,HTTP Challenge 埠預設為 9180,如果出現連接埠衝突請修改 /usr/local/etc/nginx-ui/app.ini,並使用 systemctl restart nginx-ui 重啟 Nginx UI 守護行程。

解除安裝 Nginx UI 但保留設定和資料庫檔案

bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ remove

更多用法

bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ help

Nginx 反向代理設定範例

server {
    listen          80;
    listen          [::]:80;

    server_name     <your_server_name>;
    rewrite ^(.*)$  https://$host$1 permanent;
}

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen  443       ssl;
    listen  [::]:443  ssl;
    http2   on;

    server_name         <your_server_name>;

    ssl_certificate     /path/to/ssl_cert;
    ssl_certificate_key /path/to/ssl_cert_key;

    location / {
        proxy_set_header    Host                $host;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          $connection_upgrade;
        proxy_pass          http://127.0.0.1:9000/;
    }
}

貢獻

貢獻使開源社群成為學習、啟發和創造的絕佳場所。我們非常感謝您所做的任何貢獻。

如果您有讓這個專案變得更強的建議,歡迎 fork 這個程式庫 (repository) 並建立一個 Pull Request。您也可以建立一個帶有 enhancement (加強)標籤的 Issue。最後,不要忘記給我們的專案點個 Star!再次感謝!

  1. Fork 專案
  2. 建立您的分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的修改 (git commit -m 'Add some AmazingFeature')
  4. 推送到您的分支 (git push origin feature/AmazingFeature)
  5. 建立一個 Pull Request

贊助

如果您覺得本專案對您有幫助,請考慮贊助我們以支援持續的開發和維護。

GitHub Sponsors Afdian

官方交流群

歡迎加入 Nginx UI 官方微信交流群,和社群使用者一起交流使用經驗、部署方案與問題排查。

掃描下方二維碼新增好友,並備註 Nginx UI 交流群,管理員會邀請您加入官方交流群。

Nginx UI WeChat Community QR Code

工具支援

JetBrains Logo

感謝 JetBrains 為我們提供免費的開源軟體授權條款支援。

開源軟體授權條款

此專案基於 GNU Affero Public License v3.0 (AGPLv3) 授權條款,請參閱 LICENSE 檔案。透過使用、散佈或對本專案做出貢獻,表明您已同意本授權條款的條款和條件。