nginx Web設定ツール
QQ技術交流グループ1:1106758598
QQ技術交流グループ2:560797506
電子メール: [email protected]
公式サイトアドレス:https://www.nginxwebui.cn
プロフェッショナル版のアドレス: https://pro.nginxwebui.cn
Gitee: https://gitee.com/cym1102/nginxWebUI
Github: https://github.com/cym1102/nginxWebUI
ビデオチュートリアル: https://www.bilibili.com/video/BV18A4y1D7GZ
WeChat寄付用QRコード
nginxWebUI は、nginx 設定用のグラフィカル管理ツールです。Web ページを使用して、http プロトコル転送、tcp プロトコル転送、リバース プロキシ、ロード バランシング、静的 HTML サーバー、自動 SSL 証明書の適用と更新など、nginx のさまざまな機能をすばやく設定できます。設定後、nginx.conf ファイルを一度に生成できます。同時に、このファイルを使用して nginx を制御して起動と再読み込みを行い、nginx の閉ループ グラフィカル制御を完了します。
nginxWebUI では、複数の nginx サーバー クラスターを管理することもできます。ワンクリックでいつでも nginx 構成に対応するサーバーに切り替えることができ、クラスター管理を容易にするために、特定のサーバーの構成を他のサーバーに同期することもできます。
nginx 自体には複雑な機能があります。nginxWebUI は nginx のすべての機能をカバーすることはできませんが、プラットフォームでカバーされていない nginx 設定項目の 90% をカバーできます。 conf ファイル。
このプロジェクトをデプロイした後は、nginx を構成するために構成コードをオンラインで検索する必要がなくなり、SSL 証明書を手動で適用して構成する必要がなくなり、このプロジェクトを簡単に追加、削除、変更、チェックインするだけで済みます。 nginxを起動します。
このプロジェクトは solon の Web システムに基づいており、データベースは sqlite を使用しているため、サーバーにデータベースをインストールする必要はありません。
このシステムは、Let's encrypt を通じて証明書を申請し、自動適用と更新に acme.sh スクリプトを使用します。更新を有効にする証明書は、毎日午前 2 時に更新されます。更新されるのは、60 日以上経過した証明書のみです。 Linux で発行されたものはサポートされています。
tcp/ip 転送構成のサポートを追加する場合、nginx の一部の下位バージョンを再コンパイルする必要がある場合があります。ただし、Ubuntu 18.04 では、nginx のインストールを指定するために –with-stream パラメーターを追加することでストリーム モジュールを使用できます。公式ソフトウェア ライブラリにはすでにストリーム モジュールが含まれているため、このシステムで tcp 転送項目が設定されている場合、ngx_stream_module.so の設定項目は自動的に導入されます。有効になっていない場合は、再コンパイルする必要はありません。 ngnix 設定ファイルの最適化を最大限に高めます。
プロフェッショナル版のアドレス: https://pro.nginxwebui.cn
関数 | プロフェッショナル版 | オープンソース版 |
---|---|---|
基本的なパラメータ設定 | √ | √ |
httpパラメータの設定 | √ | √ |
リバースプロキシ構成 | √ | √ |
ストリームパラメータの設定 | √ | √ |
負荷分散構成 | √ | √ |
パラメータテンプレート | √ | √ |
静的 Web ページのアップロード | √ | √ |
パスワードファイルの管理 | √ | √ |
ブラックリストIP | √ | √ |
証明書申請書 | √ | √ |
API インターフェースのドキュメント | √ | √ |
リモート管理 | √ | √ |
ノードとグループの一元管理 | √ | × |
ノード構成ファイルの統合同期 | √ | × |
ノード情報データ収集 | √ | × |
ノードステータス統計 | √ | × |
キャッシュ構成 | √ | × |
nginxログ収集 | √ | × |
nginxログの表示 | √ | × |
nginxログ統計 | √ | × |
nginxトラフィック統計 | √ | × |
Ubuntu オペレーティング システムを例にとると、
注: このプロジェクトでは、システム コマンドを root ユーザーで実行する必要があるため、ハッカーによって悪用されやすくなります。必ずパスワードを複雑なものに変更してください。
1. Java環境とnginxをインストールする
Ubuntu:
apt update
apt install openjdk-11-jdk
apt install nginx
セントス:
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
重启电脑
2.最新リリースのパッケージjarをダウンロードします。
Linux: mkdir /home/nginxWebUI/
wget -O /home/nginxWebUI/nginxWebUI.jar https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar
Windows: 直接使用浏览器下载 https://gitee.com/cym1102/nginxWebUI/releases/download/4.2.5/nginxWebUI-4.2.5.jar 到 D:/home/nginxWebUI/nginxWebUI.jar
新しいバージョンがある場合は、パス内のバージョンを変更するだけで済みます。
3. プログラムを開始します
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 他のデータベースを使用します。ローカル sqlite データベース、オプションの mysql を使用する場合は空白のままにします。
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui データベース URL
--spring.datasource.username=root データベース ユーザー
--spring.datasource.password=データベースのパスワードを渡す
Linux コマンドは、プロジェクトがバックグラウンドで実行されていることを示すために最後にアンパサンドを追加することに注意してください。
このプロジェクトでは、nginx および nginxWebUI を含む x86_64/arm64/arm v7 プラットフォームをサポートし、nginx の管理と操作を統合する Docker イメージを作成しました。
1. Dockerコンテナ環境をインストールする
Ubuntu:
apt install docker.io
セントス:
yum install docker
2. イメージをプルします。
docker pull cym1102/nginxwebui:latest
或者
docker pull registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
3. コンテナを起動します。
docker run -itd
-v /home/nginxWebUI:/home/nginxWebUI
-e BOOT_OPTIONS="--server.port=8080"
--net=host
--restart=always
cym1102/nginxwebui:latest
或者
docker run -itd
-v /home/nginxWebUI:/home/nginxWebUI
-e BOOT_OPTIONS="--server.port=8080"
--net=host
--restart=always
registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
知らせ:
コンテナの起動時に --net=host パラメータを使用してローカル ポートを直接マッピングしてください。内部 nginx は任意のポートを使用する可能性があるため、ローカル マシンのすべてのポートをマッピングする必要があります。
コンテナーは、パス /home/nginxWebUI:/home/nginxWebUI をマップする必要があります。データベース、nginx 構成ファイル、ログ、証明書などを含む、プロジェクトのすべてのデータ ファイルは、このパスに保存されます。イメージをアップグレードするときに、このディレクトリに保存できます。プロジェクトデータが失われないように注意してください。
-e BOOT_OPTIONS パラメータには Java 起動パラメータを入力でき、このパラメータを使用してポート番号を変更できます。
--server.port はポートを占有します。入力しない場合は、デフォルトでポート 8080 で起動します。
別: 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"
network_mode: "host"
restart: always
或者
version: "3.2"
services:
nginxWebUi-server:
image: registry.cn-hangzhou.aliyuncs.com/cym19871102/nginxwebui:latest
volumes:
- type: bind
source: "/home/nginxWebUI"
target: "/home/nginxWebUI"
environment:
BOOT_OPTIONS: "--server.port=8080"
network_mode: "host"
restart: always
Maven を使用してコンパイルおよびパッケージ化する
mvn clean package
docker を使用してイメージをビルドする
docker build -t nginxwebui:latest .
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 -Dfile.encoding=UTF-8 /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 パラメータ設定では、http 転送用に nginx の http プロジェクトを設定できます。その他の必要な設定は、自由に追加、削除、変更、確認できます。ログを生成するためにチェックを入れることができます。ファイル。
nginx のストリーム プロジェクト パラメーターは TCP パラメーター構成で構成できますが、ほとんどの場合、これは必要ありません。
リバースプロキシでは、nginxのリバースプロキシ、つまりサーバー機能を設定したり、SSL機能を有効にしたり、Webページからpemファイルやキーファイルを直接アップロードしたり、システムに適用されている証明書を使用して直接有効にしたりできます。 http から https への機能、http2 プロトコルを有効にすることもできます。
ロードバランシングでは、アップストリーム機能であるnginxのロードバランシング機能を設定できます。 リバースプロキシ管理では、ロードバランシングを設定するプロキシの対象を選択できます。
HTML 静的ファイルのアップロードでは、HTML 圧縮パッケージを指定したパスに直接アップロードでき、アップロード後はリバース プロキシで直接使用できるため、Linux で HTML ファイルをアップロードする必要がなくなります。
証明書は証明書管理で追加し、発行および更新できます。スケジュールされた更新がオンになった後、システムは有効期限が近づいている証明書を自動的に更新します。 注: 証明書は acme.sh の DNS モードを使用して発行されます。ご利用にはAlibaba CloudのaliKeyおよびaliSecretと連携する必要がありますので、まずaliKeyおよびaliSecretを申請してください。
バックアップ ファイル管理。ここでは、nginx.cnf のバックアップ履歴バージョンを確認できます。nginx でエラーが発生した場合、特定の履歴バージョンにロールバックすることを選択できます。
最終的に conf ファイルが生成され、ここでさらに手動で変更を加えることができます。変更が正しいことを確認した後、ローカルの conf ファイルを上書きし、検証して再起動することができます。単一の nginx.conf ファイルを生成するか、それぞれを個別に生成するかを選択できます。ドメイン名に従って conf 内の設定ファイルを作成します。
リモートサーバー管理。複数の nginx サーバーがある場合、それらすべてに nginxWebUI をデプロイし、そのうちの 1 つにログインし、リモート管理で他のサーバーの IP、ユーザー名、パスワードを追加すると、すべての nginx サーバーを管理できます。 1台のマシン。
特定のサーバーのデータ構成と証明書ファイルを他のサーバーに同期できるワンクリック同期機能を提供します
このシステムは http インターフェイス呼び出しを提供します。http://xxx.xxx.xxx.xxx:8080/doc.html を開いて、smart-doc インターフェイス ページを表示します。
インターフェイス呼び出しでは、http リクエスト ヘッダーにトークンを追加する必要があります。トークンを取得するには、まず管理者管理でユーザーのインターフェイス呼び出し権限を開き、次にユーザー名とパスワードを使用してトークン インターフェイスを呼び出してトークンを取得する必要があります。 。
ログイン パスワードを忘れた場合、または 2 段階認証の QR コードを保存していない場合は、以下のチュートリアルに従ってパスワードをリセットし、2 段階認証をオフにすることができます。
1.jarのインストール方法、コマンドを実行
java -jar /home/nginxWebUI/nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home は、プロジェクト ファイルが配置されているディレクトリ、または Docker コンテナを使用する場合のマッピング ディレクトリです。
--project.findPass はユーザー名とパスワードを出力するかどうかです。
操作が成功したら、すべてのユーザー名とパスワードをリセットして印刷し、2 段階認証をオフにすることができます。
2. Docker のインストール方法。最初にコマンドを実行して Docker コンテナに入ります。ここで、{ID} はコンテナの ID です
docker exec -it {ID} /bin/sh
再度コマンドを実行する
java -jar /home/nginxWebUI.jar --project.findPass=true
操作が成功したら、すべてのユーザー名とパスワードをリセットして印刷し、2 段階認証をオフにすることができます。