// 編集: これは私のローカル開発サーバーです
ホストのポート 8000 で PHP 組み込みサーバーを実行しています。nginx をポート 80 から 8000 にsomehost.dev
プロキシするようにします。私の設定:somehost.dev
server {
listen 80;
server_name *.dev;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://$host:8000$uri;
proxy_redirect off;
}
}
エラーが発生しています:
[error] 30106#0: *1 no resolver defined to resolve somehost.dev, client: 127.0.0.1, server: *.dev, request: "GET /favicon.ico HTTP/1.1", host: "somehost.dev", referrer: "http://somehost.dev/admin"
何が間違っているのでしょうか?
答え1
resolver 127.0.0.1;
ローカルで DNS を実行していない場合は、設定に追加し、セットアップ内の 127.0.0.1 を DNS サーバーに置き換えます。
Nginx リゾルバ情報:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location
アップストリーム サーバーの名前をアドレスに解決するために使用されるネーム サーバーを構成します。例:
resolver 127.0.0.1 [::1]:5353;
アドレスはドメイン名または IP アドレス、およびオプションのポート (1.3.1、1.2.2) として指定できます。ポートが指定されていない場合は、ポート 53 が使用されます。ネーム サーバーはラウンドロビン方式で照会されます。
バージョン 1.1.7 より前では、単一のネーム サーバーのみ設定できました。バージョン 1.3.1 および 1.2.2 以降では、IPv6 アドレスを使用したネーム サーバーの指定がサポートされています。
デフォルトでは、nginx は解決時に IPv4 アドレスと IPv6 アドレスの両方を検索します。IPv6 アドレスの検索が不要な場合は、ipv6=off パラメータを指定できます。
名前を IPv6 アドレスに解決する機能は、バージョン 1.5.8 以降でサポートされています。
デフォルトでは、nginx は応答の TTL 値を使用して応答をキャッシュします。オプションのvalid
パラメータを使用すると、これを上書きできます。
resolver 127.0.0.1 [::1]:5353 valid=30s;
バージョン 1.1.9 より前では、キャッシュ時間の調整は不可能であり、nginx は常に 5 分間応答をキャッシュしていました。
Syntax: resolver_timeout time;
Default: resolver_timeout 30s;
Context: http, server, location
名前解決のタイムアウトを設定します。例:
resolver_timeout 5s;