nginx: тестът на конфигурационния файл /etc/nginx/nginx.conf е неуспешен (хостът не е намерен в upstream)

Имам странна кутия, която работи добре от известно време и днес по някаква причина получавам следното, когато се опитам да рестартирам 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 - изглежда, че не мога да пингвам хоста... някакви идеи защо?

Ето моя nginx conf файл: nginx conf файл

--Update-- Изпълнете следното, за да проверите какво има на порт 80.. (след като прочетох друга подобна публикация) и мога да видя, че varnish daemon е на порт 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;

}


person Zabs    schedule 27.10.2014    source източник
comment
Ще трябва да публикувате /etc/nginx/conf.d/myclass.com.conf (всичко друго в /etc/nginx/conf.d също би помогнало.   -  person Tejay Cardon    schedule 27.10.2014
comment
благодаря за коментара - добавих го по-горе сега   -  person Zabs    schedule 27.10.2014


Отговори (3)


Всичко, от което се нуждаете, е да поставите резолвер, който може да разрешава такова име на домейн:

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
person Anatoly    schedule 09.11.2014
comment
Но защо това пречи на nginx да стартира правилно? - person Phil; 27.04.2017
comment
Не виждам резолвер сървър по подразбиране в конфигурацията. Ако използвате FQDN в proxy_pass, имате нужда от такъв. - person Anatoly; 02.05.2017
comment
@Phil, надявам се един ден някой да успее да отговори на въпроса ти. В моя случай услугата вече не съществува, но въпреки това искам да стартирам nginx. гадно е нали? - person Willa; 18.10.2017

Вашият проблем идва от този ред:

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

person Tejay Cardon    schedule 27.10.2014

Може би малко късно, но има просто решение. промяна

www.class.com.192.168.33.10.xip.io

в

www.class.com.192.168.33.10.nip.io

и трябва да се разреши на всеки DNS.

person Krumelur    schedule 09.08.2017