Я установил сервер Gitea на своем Raspberry Pi 3B, на котором установлена последняя версия DietPi. Я установил nginx в качестве обратного прокси-сервера для веб-сайта Gitea, который я размещаю. Все работает отлично, за исключением нескольких часов (иногда чаще), веб-сайт не может быть достигнут. После перезапуска службы nginx все снова работает нормально. Поэтому сейчас мне приходится довольно часто перезапускать сервис. В качестве временного обходного пути я уже настраивал cronjob каждый час, чтобы перезапускать обратный прокси-сервер, но, видимо, даже этого недостаточно. В error.log нет содержимого. Как я могу определить и решить проблему?

Прокси снова вышел из строя, поэтому я проверил error.log, и он определенно пуст. Выход для service nginx status выглядит следующим образом:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2018-11-09 08:05:09 CET; 17min ago
     Docs: man:nginx(8)
  Process: 14459 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, s
  Process: 6409 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 19805 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 6411 (code=exited, status=0/SUCCESS)
      CPU: 121ms

Nov 09 08:05:01 hostname systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 09 08:05:09 hostname nginx[19805]: nginx: [emerg] host not found in upstream "git.domain.tld" in /etc/nginx/sites-en
Nov 09 08:05:09 hostname nginx[19805]: nginx: configuration file /etc/nginx/nginx.conf test failed
Nov 09 08:05:09 hostname systemd[1]: nginx.service: Control process exited, code=exited status=1
Nov 09 08:05:09 hostname systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Nov 09 08:05:09 hostname systemd[1]: nginx.service: Unit entered failed state.
Nov 09 08:05:09 hostname systemd[1]: nginx.service: Failed with result 'exit-code'.

1 ответ1

0

Поэтому я сосредоточился на ошибке nginx[19805]: nginx: [emerg] host not found in upstream и нашел рабочее решение, которое описано здесь.

Я отредактировал мой файл git.domain.tld.vhost в /etc/nginx/sites-available чтобы он выглядел так:

server {
  resolver 8.8.8.8;
  listen 80;
  server_name git.domain.tld;

  location / {
    set $upstream "git.domain.tld:5016";
    proxy_pass http://$upstream;
  }
}

Как вы видите здесь, я назначил домен, который перенаправляется, переменной. Я также установил для resolver адрес DNS, на котором находится домен. Теперь все работает как надо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .