Рейтинг:0

nginx получает GET/запрос, хотя это неправильно

флаг us

Итак, я запускаю контейнер nginx с помощью docker-compose:

Сервисы:
  нгинкс:
    строить:
      контекст: .
      докерфайл: Докерфайл
    перезапуск: всегда
    имя_контейнера: webserver_nginx
    имя хоста: nginx
    stop_grace_period: 1 м 30 с

    проверка состояния здоровья:
      тест: ["CMD-SHELL", "curl -sf http://127.0.0.1/ -o /dev/null || выход 1"]
      интервал: 1м30с
      тайм-аут: 10 сек.
      повторы: 3
      start_period: 40 с

    порты:
      - 443:443
      - 80:80

    тома:
      # Ограничение сервиса с паролем
      - ./.credentials/.htpasswd:/var/.credentials/.htpasswd

      # Конфигурации Nginx
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./proxy_params:/etc/nginx/proxy_params
      - ./conf:/etc/nginx/conf.d

      #Nginx обслуживает статические файлы
      - /var/backups/off:/var/web_data/off


      # Ведение журнала Nginx
      - /var/журнал/nginx:/var/лог/nginx

    сети:
      - сеть_веб-сервера

сети:
  веб-сервер_сеть:
    внешний: правда

Докерфайл:

ОТ nginx

CMD ["nginx", "-g", "демон выключен;"]

мой nginx.conf:

пользователь nginx;
рабочие_процессы авто;

error_log /var/log/nginx/error.log предупреждение;
pid /var/run/nginx.pid;

События {
    worker_connections 1024;
}

http {
    включить /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$статус $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    журнал_доступа /var/log/nginx/access.log основной;

    отправить файл включен;
    keepalive_timeout 65;

    включить /etc/nginx/conf.d/*.conf;
}

и конфиг для моего контейнера:

сервер {
  слушать 80;
  слушать [::]:80;

  имя_сервера имя.com;

  местоположение/администратор {
    прокси_пасс http://off:4000;
    proxy_set_header Хост $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 100;
    прокси_http_версия 1.1;
  }
  местоположение/статический {
    псевдоним /var/web_data/off/collectstatic;
  }

  местоположение / СМИ {
    псевдоним /var/web_data/off/upload;
  }

  место расположения / {
    вернуть 404;
  }
}

поэтому всякий раз, когда я пытаюсь запросить http://имя.com/admin я получаю такой журнал из access.log:

127.0.0.1 - - [16/May/2022:15:53:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:55:12 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:56:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"

и я получаю 502 Ошибка шлюза от nginx в браузере даже когда я пытаюсь получить доступ к основному сайту, например http://имя.com/ я продолжаю получать ошибку 502 мой контейнер состоит из:

версия: '3.8'

Сервисы:
  оффч:
    строить:
      контекст: .
      dockerfile: развернуть/бета/Dockerfile
      аргументы:
        РАБОЧИЙ_КАТАЛОГ: /приложение
    имя_контейнера: выключено
    имя хоста: Джанго
    перезапустить: «всегда»

    команда: gunicorn -c deploy/beta/configs/gunicorn/conf.py --chdir api api.wsgi:application

    тома:
      # Исходный код проекта
      - .:/приложение
      # Собираем статические файлы
      - /var/backups/offch/collectstatic:/collectstatic
      # Медиафайлы (загрузки)
      - /var/backups/offch/upload:/app/media/upload
      - /var/журнал/выскочка:/вар/журнал/выскочка

    stop_grace_period: 1 м 30 с

    проверка состояния здоровья:
      тест: ["CMD", "curl", "-f", "http://127.0.0.1:4000"]
      интервал: 1м30с
      тайм-аут: 10 сек.
      повторы: 3
      start_period: 40 с

    порты:
      - "4000:4000"

    сети:
      - сеть_веб-сервера

сети:
  веб-сервер_сеть:
    внешний: правда

Кстати, я могу получить доступ к сайту через ip и порт, у меня только эта проблема с nginx.

djdomi avatar
флаг za
привет, важно, что вы хотите использовать. это означает, что вы должны сначала использовать 404, а затем директиву администратора imho
scaryhamid avatar
флаг us
@djdomi привет, спасибо за ответ, но это не сработало, я все еще получаю тот же журнал из nginx access.log, я уже использовал эту конфигурацию на другом сервере, и у меня есть эта проблема только здесь
djdomi avatar
флаг za
то, что произошло, пока вы отключили последнюю часть, и не работает, не является описанием ошибки;) если вы меняете конфигурацию или среду, вам нужно отразить изменения также в вопросе, пожалуйста, покажите вывод `nginx -T`

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.