web-dev-qa-db-ja.com

nginx:構成ファイル/etc/nginx/nginx.confテストが失敗しました(ホストがアップストリームに見つかりません)

しばらくの間正常に動作していた浮浪者の箱があり、今日何らかの理由でnginxを再起動しようとすると次のようになります。

nginx: [emerg] Host not found in upstream "www.myclass.com.192.168.33.10.xip.io" in /etc/nginx/conf.d/myclass.com.conf:19
nginx: configuration file /etc/nginx/nginx.conf test failed

私が知っている限り、自分で何も変更していません(Windows Updateが奇妙なことをしていない限り)

誰でもnginxを再び動作させてnginxサービスを再起動する方法を提案できますか?ホストにpingを実行できないようです...理由は何ですか?

ここに私のnginx confファイルがあります: nginx conf file

-アップデート-以下を実行して、ポート80にあるものを確認します(別の同様の投稿を読んでいます)。そして、ニスデーモンがポート80にあることがわかります。この問題の原因は??私はこのようなものに慣れていないので、アドバイスを歓迎します

Sudo netstat -tlnp | grep 80

Myclass.com.confファイル

server {
listen              80;
server_name         class.com.* www.class.com.*;

root /vagrant/www.class.com/public_html;
index index.php;

access_log /vagrant/log/class.com.access.log;
error_log  /vagrant/log/class.com.error.log error;

charset utf-8;

location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt  { access_log off; log_not_found off; }

error_page 404 /index.php;

location /socket.io {
    proxy_pass http://www.class.com.192.168.33.10.xip.io:8055;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;
}

location / {
    try_files       $uri $uri/ @handler;
    expires         30d;
}

location  /. {
    return 404;
}

location @handler {
    rewrite / /index.php last;
}

location ~ .php/ {
    rewrite ^(.*.php)/ $1 last;
}

location ~ \.php$ {
    try_files                       $uri =404;

    expires                         off;

    fastcgi_read_timeout            900;
    fastcgi_index                   index.php;
    fastcgi_pass                    127.0.0.1:9000;
    fastcgi_param                   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param                   CLASS_ENVIRONMENT LYLE;
    include                         /etc/nginx/fastcgi_params;
}

gzip            on;
gzip_min_length 1000;
gzip_proxied    any;
gzip_types      text/plain application/xml text/css text/js application/x-javascript;

sendfile        off;

}

33
Zabs

必要なのは、そのようなドメイン名を解決できるリゾルバーを配置することです。

resolver                  8.8.8.8 valid=300s;
resolver_timeout          10s;

Google DNS(8.8.8.8)は解決できますが、ネットワーククラスCに属する内部アドレスに解決されます。

$ Dig @8.8.8.8 www.class.com.192.168.33.10.xip.io
;; ANSWER SECTION:
www.class.com.192.168.33.10.xip.io. 299 IN A    192.168.33.10
13
Anatoly

あなたの問題はこの行から来ています:

proxy_pass http://www.class.com.192.168.33.10.xip.io:8055;

ほとんどの場合、サーバーはそのDNS名を解決するのが困難です。 https://serverfault.com/questions/341810/nginx-failing-to-resolve-upstream-names-on-reload-even-if-they-do-resolve-byもご覧ください-the

10
Tejay Cardon

少し遅いかもしれませんが、簡単な解決策があります。変化する

www.class.com.192.168.33.10.xip.io

www.class.com.192.168.33.10.nip.io

dNSで解決するはずです。

1
Krumelur