この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9418|答える: 0

[ウェブ] Nginxのリゾルバを使って動的アップストリームを実装します

[リンクをコピー]
掲載地 2019/07/27 22:23:00 | | |
最近、私の仕事でこの側面が必要になってきました。アップストリームは完全に動的で、クライアントが指定し、最初にいくつかのエラーがあり、最終的にDNSサービスはリゾルバーを通じて指定されます。具体的なプロセスは以下の通りです。

1. 穴を踏み始める

nginxの構成は以下の通りです。

このようなリクエストを送るとき:


以下の誤りが報告されました。

access.log:
127.0.0.1 - - [14/Sep/2017:23:37:10 +0800] "GET / HTTP/1.1" 502 179 "-" "curl/7.29.0"

error.log:
2017/09/14 23:38:31 [エラー] 25307#25307: *48 解決するリゾルバが定義されていませんwww.baidu.com, client: 127.0.0.1, server: localhost, リクエスト: "GET / HTTP/1.1", host: "127.0.0.1:8001"
この問題は、リゾルバを指定しないとカスタム upstreamwww.baidu.com が発生することを明記していることが明らかです。

2. リゾルバーを使ってドメイン名の解決を定義します

修正されたnginx配置は以下の通りです:

今やリクエストは通常200件です:

req:
curl "127.0.0.1:8001/" -H "upstream-host:www.baidu.com「-ヴォア」
curl "127.0.0.1:8001/" -H "upstream-host:www.qq.com「-ヴォア」

access.log:
127.0.0.1 - - [14/Sep/2017:23:44:01 +0800] "GET / HTTP/1.1" 200 2381 "-" "curl/7.29.0"
127.0.0.1 - - [14/Sep/2017:23:44:07 +0800] "GET / HTTP/1.1" 200 244182 "-" "curl/7.29.0"
3. リゾルバ命令

リゾルバの構文は以下の通りです:

Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default:    —
Context:    http, server, location
複数のDNSサービスを設定でき、nginxはポーリングを使ってDNSサービスにアクセスし、nginxはDNSドメイン名解決の結果をキャッシュし、キャッシュ時間は有効で指定され、IPv6のオン・オフ表示にはIPv6が使われます。

resolver_timeoutはDNS解決のタイムアウトを指定するために使われます。





先の:個人用FTP構築ソフトウェアを共有しましょう
次に:Alibaba Cloud OSS Nginx リバースプロキシ設定
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com