Я прочитал несколько статей о сопоставлении nginx, и они сказали, что более длинный блок местоположения должен сопоставляться первым.
Однако, когда я пытаюсь настроить прокси для двух местоположений, первое место получает весь трафик, а второе не получает его.
Это конфигурация моего сервера.
сервер {
слушать 80;
имя_сервера IP;
#возврат 301 https://$host$request_uri;
# nginx/сайты-доступны/fdp.conf
местоположение /lls/ {
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-Proto $ схема;
proxy_pass_request_headers включен;
прокси_пароль http://IP:8080;
}
место расположения / {
proxy_set_header Хост $host;
proxy_set_header X-Forwarded-Proto $ схема;
proxy_pass_request_headers включен;
прокси_пароль http://IP:8000/;
}
}
Почему nginx не перенаправляет трафик на прокси /lls? Я также пытался использовать местоположение регулярного выражения ~/lls, но здесь тоже не повезло. Оба приложения запускаются, когда я посещаю порты на IP.
У меня есть приложение, работающее под портом 8000. Моя цель — добавить второе приложение, работающее под /lls. Для этого я хочу, чтобы весь трафик направлялся на порт 8000, если только /lls не указан в URL-адресе, тогда я хочу, чтобы весь трафик направлялся на второе приложение на порту 8080. В текущей ситуации трафик, предназначенный для порта 8080, перехватывается портом 8000.
Вывод curl -v IP/lls:
* Пробуем IP:80...
* Установлен TCP_NODELAY
* Подключен к IP (IP) порту 80 (#0)
> ПОЛУЧИТЬ /lls HTTP/1.1
> Хост: IP
> Пользовательский агент: curl/7.68.0
> Принять: */*
>
* Отметить комплект как не поддерживающий многоразовое использование
< HTTP/1.1 400
< Сервер: nginx/1.18.0 (Ubuntu)
< Дата: суббота, 09 октября 2021 г., 08:41:47 по Гринвичу
< Тип содержимого: текст/черепаха
< Transfer-Encoding: фрагментировано
< Соединение: поддержание активности
<Доступ-Контроль-Разрешить-Происхождение: *
< Access-Control-Allow-Headers: Origin, Authorization, Accept, Content-Type
< Access-Control-Expose-Headers: Location, Link
< Разрешить: ПОЛУЧИТЬ, ПОСТАВИТЬ, ПОСТАВИТЬ, ИСПРАВИТЬ, УДАЛИТЬ
< Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE
< X-Content-Type-Options: nosniff
< X-XSS-защита: 1; режим = блок
< Cache-Control: без кеша, без хранения, max-age=0, обязательна повторная проверка
<Прагма: без кеша
< Срок действия: 0
< X-Frame-Options: DENY
<
* Соединение №0 с IP-адресом хоста осталось нетронутым
Выход lsof-Pi: 8080
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
docker-pr 2698710 root 4u IPv4 8351515 0t0 TCP *:8080 (СЛУШАТЬ)
docker-pr 2698721 root 4u IPv6 8351519 0t0 TCP *:8080 (СЛУШАТЬ)
Выход lsof-Pi: 8000
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
docker-pr 2615262 root 4u IPv4 7781060 0t0 TCP *:8000 (СЛУШАТЬ)
docker-pr 2615267 root 4u IPv6 7781066 0t0 TCP *:8000 (СЛУШАТЬ)