優れたソフトウェアと実用的なチュートリアル
Nginx 構成のビジュアル構成ファイル生成、nginxWebUI グラフィカル管理構成ツール
Nginxの設定 nginxWebUI 視覚的なグラフィカル管理ですnginx設定ツールウェブページを使用して、httpプロトコル転送、tcpプロトコル転送、リバースプロキシ、負荷分散、静的HTMLサーバー、SSL証明書の自動適用、更新、構成など、nginxのさまざまな機能をすばやく構成できます。構成後は、ワンクリックで生成できます。nginx.confファイル、そして同時にこのファイルを使用して nginx を起動およびリロードするように制御し、nginx のグラフィカル制御のクローズド ループを完了します。
nginxWebUIは複数のnginxサーバークラスターを管理することもできます。ワンクリックでいつでも対応するサーバーに切り替えてnginxを設定できます。また、サーバーの設定を他のサーバーにワンクリックで同期できるため、クラスター管理が容易になります。
Nginx自体は複雑な機能を備えています。NginxWebUIはNginxの全ての機能を網羅することはできませんが、Nginxの日常的な機能使用設定はカバーできます。プラットフォームでカバーされていないNginxの設定項目については、カスタムパラメータテンプレートを使用して、confファイルに独自の設定パラメータを生成できます。
このプロジェクトをデプロイすれば、nginx の設定のためにインターネットで設定コードを探す必要がなくなり、SSL 証明書の申請や設定を手動で行う必要もありません。このプロジェクトに追加、削除、変更、チェックインするだけで、簡単に nginx を設定して起動できます。
Github プロジェクトのウェブサイト:https://github.com/cym1102/nginxWebUI
nginxWebUI公式サイト:https://www.nginxwebui.cn/
Nginxとは
Nginxは、リバースプロキシ、ロードバランサ、HTTPキャッシュとしても使用できる非同期フレームワークのウェブサーバーです。このソフトウェアは、ロシアのプログラマーであるIgor Sysoevによって開発され、2004年に初めて公開されました。2011年には、サポートサービスを提供するために同名の会社が設立されました。2019年3月11日、NginxはF5 Networksに6億7000万ドルで買収されました。NginxはBSDライセンスに類似したライセンスの下でリリースされている、無料のオープンソースソフトウェアです。
nginx公式サイト:https://nginx.org/
Nginx 設定 nginxWebUI 技術ドキュメント
このプロジェクトはSolonをベースにしたWebシステムであり、データベースはH2を使用するため、サーバーにデータベースをインストールする必要はありません。
このシステムはLet's Encryptを通じて証明書を申請し、acme.shスクリプトを使用して自動申請と更新を行います。更新が有効になっている証明書は、毎日午前2時に更新されます。60日以上経過した証明書のみ更新されます。証明書はLinux環境でのみ発行可能です。
TCP/IP転送設定のサポートを追加する場合、nginxの一部の下位バージョンでは再コンパイルが必要になる場合があります。ストリームモジュールは、--with-streamパラメータを追加することでインストールできます。ただし、Ubuntu 18.04では、公式ソフトウェアライブラリのnginxに既にストリームモジュールが含まれているため、再コンパイルする必要はありません。システムにTCP転送項目が設定されている場合は、ngx_stream_module.soの設定項目が自動的に導入されます。有効になっていない場合は、ngnix設定ファイルを最大限に最適化するために導入されません。
jarのインストール手順
Ubuntu オペレーティング システムを例にして、Java ランタイム環境と nginx をインストールします。
ウブントゥ
apt update apt install openjdk-11-jdk apt install nginx
セントス
yum インストール java-11-openjdk yum インストール nginx
ウィンドウズ
JDK インストール パッケージをダウンロードします。 https://www.oracle.com/java/technologies/downloads/
nginxをダウンロード: http://nginx.org/en/download.html
- JAVAランタイム環境の構成
- JAVA_HOME : JDKインストールディレクトリ
- パス: JDKインストールディレクトリ\bin
- コンピュータを再起動してください
nginxWebUIリリースパッケージjarの最新バージョンをダウンロードします。
リナックス
mkdir /home/nginxWebUI/ wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar
ウィンドウズ
ブラウザを使用して直接ダウンロード http://file.nginxwebui.cn/nginxWebUI-3.4.4.jar D:/home/nginxWebUI/nginxWebUI.jar へ
新しいバージョンがある場合は、パス内のバージョンを変更するだけで済みます。
nginxWebUIプログラムを起動する
リナックス
nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
ウィンドウズ
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=ルートデータベースユーザー
--spring.datasource.password=データベースのパスワード
Linuxコマンドは&記号で終わり、プロジェクトがバックグラウンドで実行されていることを示します。
Dockerのインストール手順
このプロジェクトでは、x86_64/arm64/arm v7 プラットフォームをサポートし、nginx の統合管理と操作のための nginx と nginxWebUI を含む Docker イメージを作成しました。
Docker コンテナ環境をインストールします。
ウブントゥ
apt で docker.io をインストールします
セントス
yumで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 を使用する場合、構成ファイルは次のようになります。
バージョン: "3.2" サービス: nginxWebUi-server: イメージ: cym1102/nginxwebui:latest ボリューム: - タイプ: バインド ソース: "/home/nginxWebUI" ターゲット: "/home/nginxWebUI" 環境: BOOT_OPTIONS: "--server.port=8080" 特権: true ネットワークモード: "host"
編集ノート
Mavenを使用してコンパイルおよびパッケージ化する
mvnクリーンパッケージ
Dockerを使用してイメージを構築する
nginxwebui を最新の状態にアップデートします。
スタートアップを追加
サービス構成を編集する
vim /etc/systemd/system/nginxwebui.service
[Unit] 説明 = NginxWebUI After = syslog.target After = network.target [Service] タイプ = simple ユーザー = root グループ = 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
Nginx の設定 nginxwebui の使用手順
ビデオチュートリアル: https://www.bilibili.com/video/BV18A4y1D7GZ
デモアドレス: http://test.nginxwebui.cn:7070
ユーザー名: admin
パスワード: admin
開ける http://xxx.xxx.xxx.xxx:8080 ホームページへ
ログインページを初めて開くと、管理者アカウントを初期化するように求められます
システムに入った後、管理者管理で管理者アカウントを追加および変更できます。
httpパラメータ設定では、nginxのhttpプロジェクトの設定とhttp転送を行うことができます。いくつかの共通設定はデフォルトで用意されており、その他の必要な設定は自由に追加、削除、変更、チェックできます。ログトラッキングを有効にしてログファイルを生成するかどうかもチェックできます。
TCP パラメータ設定では、nginx のストリーム プロジェクト パラメータを設定できますが、ほとんどの場合、設定する必要はありません。
リバースプロキシでは、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ファイルを1つだけ生成するか、ドメイン名で各設定ファイルを分割してconf.d配下に配置するかを選択できます。
リモート サーバー管理では、複数の nginx サーバーがある場合、それらすべてに nginxWebUI を展開し、そのうちの 1 つにログインして、リモート管理で他のサーバーの IP とユーザー名とパスワードを追加すると、1 台のマシンですべての nginx サーバーを管理できます。
ワンクリック同期機能を提供し、サーバーのデータ構成と証明書ファイルを他のサーバーに同期することができます。
インターフェース開発
このシステムは http インターフェイス呼び出しを提供します。smart-doc インターフェイス ページを表示するには、http://xxx.xxx.xxx.xxx:8080/doc.html を開きます。
インターフェース呼び出しでは、HTTPリクエストヘッダーにトークンを追加する必要があります。トークンを取得するには、まず管理者管理画面でユーザーのインターフェース呼び出し権限を開き、ユーザー名とパスワードを使用してトークン取得インターフェースを呼び出してトークンを取得する必要があります。
パスワードを回復する
ログイン パスワードを忘れた場合、または 2 段階認証を保存していない場合は、以下のチュートリアルに従ってパスワードを取得し、2 段階認証をオフにすることができます。
1. nginxWebUIを停止する
pkill java
2. パスワード取得パラメータを指定してnginxWebUI.jarを実行する
java -jar nginxWebUI.jar --project.home=/home/nginxWebUI/ --project.findPass=true
--project.home はプロジェクトファイルが置かれているディレクトリです
--project.findPass ユーザー名とパスワードを出力するかどうか
操作が成功したら、すべてのユーザー名とパスワードを印刷し、2段階認証をオフにすることができます。
オープンスターを推奨