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:
nginx conf file
- Update--
Выполните следующее, чтобы проверить, что находится на порту 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;
}
Ответы
Ответ 1
Все, что вам нужно, это установить resolver, который может разрешить такое доменное имя:
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
Ответ 2
Ваша проблема исходит из этой строки:
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
Ответ 3
Возможно, немного поздно, но есть простое решение. Изменение
www.class.com.192.168.33.10.xip.io
в
www.class.com.192.168.33.10.nip.io
и он должен разрешаться на любом DNS.