前提条件DNSドメイン名解決プロセス
外部ネットワークマッピング名前が示すように、ローカルIPアドレスをパブリックIPアドレスにマッピングし、すべてのホスト(インターネットに接続されたコンピュータ)からアクセスできるようにします。
たとえば、WeChat 支払い用のサードパーティ インターフェイス コールバックを作成する場合、WeChat がコールバックするインターフェイスはパブリック IP アドレスである必要があります。そうでない場合、コールバックがまったくできず、ローカルでテストできなくなります。この時点で、IPアドレスをパブリックネットワーク(ホストがアクセス可能なネットワーク)にマッピングするための外部ネットワークマッピングが必要です。
natapp、ngrok などのサードパーティ ツールを使用して外部ネットワーク マッピングを完了します。具体的な手順については、公式 Web サイトをご覧ください。 nginxコア知識nginxとはnginx は、小型で非常に高い同時実行性をサポートする軽量の Web サーバー/リバース プロキシ サーバーです。 アプリケーションシナリオhttp サーバー: 静的サーバーおよびイメージ サーバーとして使用されます。仮想ホスト構成: サーバーを複数の Web サイト展開に分割します。 (異なるドメイン名マッピングまたは異なるポートを構成することで、仮想ホストの構成を完了できます) 用語集レイヤー4負荷分散 トランスポート層で実行され、多くの場合TCPプロトコルを使用する レイヤー7負荷分散 アプリケーション層で実行され、多くの場合Httpプロトコルを使用する 負荷分散 機能:単一サーバーの負荷を軽減し、フェイルオーバー(再試行メカニズム)サーバーがダウンした場合、次のサーバーを直接ポーリングし、ヘルスチェックを行い、アップストリームを使用してnginxでアップストリームサーバーを構成します。 フェイルオーバー いずれかのサーバーにアクセスしたときにサービスが停止しているか遅延が発生している場合は、フェイルオーバーを構成して別のサーバーに直接切り替えることができます。 ### アップストリーム サーバーに接続する時間 proxy_connect_timeout 1s; ### 送信リクエストのタイムアウト proxy_send_timeout 1s; ### 対応するタイムアウトを受け入れます proxy_read_timeout 1s; 動的負荷分散 アップストリームの構成は静的ではなくなり、動的な負荷分散を実現するために登録センターから動的に取得されます。 Nginx + consul + upsync で動的負荷分散が完了1. Centos7の基本環境をインストールする # 基本コマンド # netstatコマンドをインストールする yum install netstat # すべてのTCPポートの使用状況を表示する netstat -ntlp # 現在のサービスプロセスを表示します ps -ef オプション: [ | grep nginx] # ポートに対応するプログラムを強制終了します kill -9 pid プロセス番号 # yum を設定します source yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yumアップデート yum インストール -y yum-utils デバイスマッパー永続データ lvm2 # 基本環境をインストールする yum install gcc-c++ yum インストール -y pcre pcre-devel yum インストール -y zlib zlib-devel yum インストール -y openssl openssl-devel yum インストール wget yum インストール 解凍 2. Consul をインストールする (サービスの登録と検出) # インストール パッケージをダウンロードします。wget -c の -c はブレークポイントの継続を意味します。wget -c https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip # 圧縮パッケージを解凍します upzip unzip consul_1.8.5_linux_amd64.zip # ./consul コマンドを実行します。Usage: consul [--version] [--help] <command> [<args>] という行と次のパラメータが表示された場合、この consul に問題がないことを意味します。/consul # ファイアウォールをオフにする systemctl stop firewalld # Consul を起動し、コンピュータの IP アドレスを入力します。仮想マシンの場合は、仮想マシンの IP アドレスを入力します。CentOS では、ip addr を使用して IP アドレスを表示できます。ipconfig を使用して IP アドレスを表示するウィンドウです。 ./consul エージェント -dev -ui -node=consul-dev -client=192.168.254.134 # もちろん、バックグラウンド実行方式を使用して、出力ログが同じレベルの nohup.out ファイルに戻るようにすることもできます。nohup ./consul agent -dev -ui -node=consul-dev -client=192.168.254.134 & # 領事のウェブページ 192.168.254.134:8500 にアクセス # consul のバックグラウンド プロセスをチェックして閉じます。ここで記述した 19854 は、jobs -l によって照会されたプロセス pid です。 ジョブ -l キル -9 19854 3. nginxをインストールし、upsyncモジュールを追加します。 # upsync モジュールをダウンロードして解凍します wget -c https://github.com/weibocom/nginx-upsync-module/archive/master.zip nginx-upsync-module-master.zip を解凍します。 # nginxをダウンロード http://nginx.org/download/nginx-1.9.9.tar.gz を実行します。 # 現在のディレクトリに解凍します tar -zxvf nginx-1.9.9.tar.gz # nginx ユーザーとユーザー グループを設定します。 -s /sbin/nologin nginx は、ユーザーがホストにログインできないことを意味します。 groupadd nginx ユーザー追加 -g nginx -s /sbin/nologin nginx # これら 2 つのフォルダは、nginx mkdir -p /var/tmp/nginx/client/ をコンパイルするときに指定されます。 mkdir -p /usr/local/nginx # nginxの解凍されたフォルダのディレクトリに入る cd nginx-1.9.9 # nginx をコンパイルします。--prefix は nginx がインストールされているディレクトリを表します。 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 作成 && インストール ## nginx がインストールされたディレクトリ、つまり /usr/local/nginx ディレクトリに移動し、conf ディレクトリに移動して、conf ディレクトリのファイルの内容を編集します。upstream myserver { server 127.0.0.1:11111;# これは修正済みなので無視してください# springbootserver: key value、upsync_timeout timeout 3 seconds、upsync_interval interval、upsync_type type consul、strong_dependency advanced dependency upsync 192.168.254.134:8500/v1/kv/upstreams/springbootserver upsync_timeout=3000ms upsync_interval=500ms upsync_type=consul strong_dependency=off; # 取得した設定ファイルを、次の設定済みディレクトリ upsync_dump_path /usr/local/nginx-1.9.9/conf/upsync_dump.conf に配置します。 } #作成したアップストリームサーバーをサーバー内の場所として指定します 位置 / { proxy_pass http://myserver; インデックス index.html index.htm; } # sbinディレクトリに入り、nginxを起動します ./nginx 4. テストを実施する
# curl リクエストを使用します。これは put リクエストである必要があります。 curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8080 curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081 #または、Postmanを使用して、Consulが提供するAPIを呼び出してキーと値を追加します http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081 # グラフィカル インターフェイスを使用してキー値を手動で追加することもできます。手動で追加する場合、フォルダーを作成する場合は最後にスラッシュを追加する必要があることに注意してください: / 5. Consulグラフィカルページでキーに対応する値を追加して、負荷分散アルゴリズムを指定します。 {"weight":1、"max_fails":2、"fail_timeout":10、"down":0} そして、wgetのダウンロード速度が遅いことがあるので、ここでファイルをアップロードします ファイルリンク 動的負荷分散を実現するための Nginx + consul + upsync に関するこの記事はこれで終わりです。Nginx + consul + upsync 動的負荷分散に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: チェックボックスの選択またはキャンセルを実装するJavaScript
公式ウェブサイトアドレス: https://dev.mysql.com/downloads/mysq...
序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...
この記事では、Linux 環境で crontab コマンドを使用して、タスクの定期的な実行をスケジュ...
目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...
JS で CSS 変数を使用する方法:export キーワードを使用して、js オブジェクトを le...
サーバーステータス分析Linux サーバーの CPU の詳細を表示する#CPU情報を表示[root@...
OS X 環境で MySQL を起動すると、エラー メッセージが表示されます。 016-03-03T...
この記事では、WebSocketを使用して簡単なチャットルームの会話を実装するための具体的なコードを...
モバイル側では、フレックスレイアウトが非常に便利です。デバイスの幅に応じてコンテナの幅を自動的に調整...
この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...
なお、この記事では、単に 20.04 ソースに変更する方法を説明するのではなく、20.04 に基づい...
この記事では、Google 入力方法をインストールします。実は以前はSogou入力方式を使っていたの...
目次ジェネリック型での条件型の使用ツールタイプ脱出ポッド矢印関数で条件型を使用する型推論による条件型...
序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...
IFNULL(式1,式2) expr1 が NULL でない場合、IFNULL() は expr1 ...