前提条件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
目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....
目次Vue2 レスポンシブ原則のレビューVue3 レスポンシブ原則の分析ネストされたオブジェクトの応...
3 つの方法を使用する簡単な例は次のとおりです。インラインスタイル: <!doctypehtm...
Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...
console.log( [] == ![] ) // 真 console.log( {} == ...
Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...
環境: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-glibc2.5...
MySQL の MyISAM エンジンと InnoDB エンジンはどちらもデフォルトで B+ ツリー...
前の 2 つの章を終えて、ボタンのフローティング アニメーションについて新たな理解が得られましたか?...
目次1. HTTP範囲リクエスト1.1 範囲構文2. 大きなファイルをダウンロードする方法2.1 補...
目次1. 永続データの簡単なマウント2. DockerFileでイメージをビルドし、設定ファイルを指...
適応型レイアウトは、実際のアプリケーションでますます一般的になっています。今日は、主にフローティング...
1. MySQL インストール パス D:\xxx\MYSQL\MySQL Workbench CE...
比較演算子でNULLを使用する mysql> 1>NULLを選択します。 +------...
ユーザーがプライバシーを意識するようになり、オンライン トラッキングに対する予防策を強化するにつれて...