Наш сервер внезапно вышел из строя сегодня. Вместо того, чтобы войти в систему, я просто получаю сообщение о том, что сеть не работает.
Я использовал POSTMAN, чтобы найти дополнительную информацию. POSTMAN возвращает ошибку 502 неверного шлюза.
Стек сервера в данный момент:
-Сервер ОС - Ubuntu 16.04
-Веб-сервер - NGINX
Серверное приложение - Loopback.js и PM2
Я перезапустил серверное приложение с pm2 start all
, но это не решило проблему.
Затем я попытался перезапустить nginx через service nginx reload
, в результате
==== АУТЕНТИФИКАЦИЯ ДЛЯ org.freedesktop.systemd1.manage-units === Аутентификация необходима для перезагрузки 'nginx.service'. Проверка подлинности
как: Ubuntu (someapp) Пароль:
==== АУТЕНТИФИКАЦИЯ ЗАВЕРШЕНА ===
, что также не решило проблему.
Далее я попробовал sudo nginx
, что привело к следующему сообщению:
nginx: [emerg] bind () to 0.0.0.0:80 не удалось (98: адрес уже в
используйте) nginx: [emerg] bind () до 0.0.0.0:443 не удалось (98: адрес уже
используется) nginx: [emerg] bind () до 0.0.0.0:80 не удалось (98: адрес
уже используется) nginx: [emerg] bind () до 0.0.0.0:443 не удалось (98:
Адрес уже используется) nginx: [emerg] bind () до 0.0.0.0:80 не удалось
(98: адрес уже используется) nginx: [emerg] bind () до 0.0.0.0:443
не удалось (98: адрес уже используется) nginx: [emerg] bind () to
0.0.0.0:80 не удалось (98: адрес уже используется) nginx: [emerg] bind () до 0.0.0.0:443 не удалось (98: адрес уже используется) nginx: [emerg]
ошибка bind () до 0.0.0.0:80 (98: адрес уже используется) nginx:
[emerg] bind () до 0.0.0.0:443 не удалось (98: адрес уже используется)
nginx: [emerg] все еще не может связать ()
Этот пост пролил некоторый свет на проблему, но я не уверен, как действовать с этой точки.
Я побежал grep -r listen /etc/nginx/*
и получил это:
/etc/nginx/conf.d/default.conf: listen 80;
/etc/nginx/conf.d/default.conf: # proxy the PHP scripts to Apache listening on 127.0.0.1:80
/etc/nginx/conf.d/default.conf: # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
/etc/nginx/sites-available/default: listen 80; # managed by Certbot
/etc/nginx/sites-available/default: listen 443 ssl;
/etc/nginx/sites-available/default: listen 80; # managed by Certbot
/etc/nginx/sites-available/default: listen 443 ssl;
/etc/nginx/sites-available/default.bak: listen 443 ssl; # managed by Certbot
/etc/nginx/sites-available/default.bak: listen 443 ssl; # managed by Certbot
/etc/nginx/sites-available/default.bak: listen 80;
/etc/nginx/sites-available/default.bak: listen 80;
/etc/nginx/sites-available/default.80.bak: listen 80; # managed by Certbot
/etc/nginx/sites-available/default.80.bak: listen 80; # managed by Certbot
sudo netstat -tulpn
привело к
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:29131 0.0.0.0:* LISTEN 2906/mdsd
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 2084/master
tcp 0 0 0.0.0.0:25324 0.0.0.0:* LISTEN 89828/ruby
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 64005/nginx: master
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 29487/systemd-resol
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1520/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2084/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 64005/nginx: master
tcp6 0 0 ::1:587 :::* LISTEN 2084/master
tcp6 0 0 :::21 :::* LISTEN 1526/vsftpd
tcp6 0 0 :::22 :::* LISTEN 1520/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2084/master
udp 0 0 127.0.0.53:53 0.0.0.0:* 29487/systemd-resol
udp 0 0 0.0.0.0:68 0.0.0.0:* 958/dhclient
udp 0 0 127.0.0.1:25224 0.0.0.0:* 89828/ruby
Я осмотрел файлы, перечисленные в
grep -R default_server / etc / nginx
В нем перечислены 3 разных файла.
default default.80.bak default.bak
должно быть 3 версии файла по умолчанию?
Я хотел убедиться, что nginx действительно работает
nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-06-07 02:29:52 UTC; 12min ago
Docs: http://nginx.org/en/docs/
Process: 73013 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=1/FAILURE)
Process: 63882 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS)
Process: 78326 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 78334 (nginx)
Tasks: 2 (limit: 4029)
CGroup: /system.slice/nginx.service
├─78334 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─78337 nginx: worker process
Jun 07 02:29:52 some-server systemd[1]: Starting nginx - high performance web server...
Jun 07 02:29:52 some-server systemd[1]: nginx.service: Can't open PID file /var/run/nginx.pid (yet?) after start: No such fi
Jun 07 02:29:52 some-server systemd[1]: Started nginx - high performance web server.
вот результат less /var/log/nginx/error.log
2019/06/07 02:51:39 [error] 78337#78337: *34 connect() failed (111: Connection refused) while connecting to upstream,
client: 201.92.190.140, server: someunion.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3000/",
host: "xx.xxx.xxx.xx:80"
Вот результат sudo lsof -i TCP:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 91299 root 6u IPv4 77726277 0t0 TCP *:http (LISTEN)
nginx 91301 nginx 6u IPv4 77726277 0t0 TCP *:http (LISTEN)