nginx:配置文件/etc/nginx/nginx.conf测试失败(上游未找到主机)

nginx:配置文件/etc/nginx/nginx.conf测试失败(上游未找到主机),nginx,vagrant,Nginx,Vagrant,我有一个流浪者盒子,它已经正常工作了一段时间,今天由于某种原因,当我尝试重新启动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 据我所知,我自己没有改

我有一个流浪者盒子,它已经正常工作了一段时间,今天由于某种原因,当我尝试重新启动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文件:

--更新-- 运行以下命令以检查端口80上的内容。。(读过另一篇类似的帖子)我可以看到varnish守护进程位于端口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;

}

您的问题来自这一行:

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

很可能服务器解析该DNS名称时遇到困难。您可能还想看看

您所需要的只是放置一个能够解析此类域名的解析器:

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

也许有点晚了,但有一个简单的解决办法。改变

www.class.com.192.168.33.10.xip.io
进入


它应该在任何DNS上解析。

您需要发布
/etc/nginx/conf.d/myclass.com.conf
(在
/etc/nginx/conf.d
中的任何其他内容也会有帮助。感谢您的评论-我现在已经添加了它,但为什么这会阻止nginx正常启动?我在配置中没有看到。如果您在proxy\u pass中使用FQDN,您需要一个。@Phil我希望有一天一些人能够回答您的问题。在我的情况下,该服务不再存在但我还是想启动nginx。它很糟糕,不是吗?
www.class.com.192.168.33.10.nip.io