Переадресация маршрутизации Nginx и конфигурация местоположения обратного прокси-сервера «рекомендуемый сбор»
Переадресация маршрутизации Nginx и конфигурация местоположения обратного прокси-сервера «рекомендуемый сбор»

Оглавление

1. Три способа настройки Nginx

  • Первая прямая замена location соответствующая часть
  • Второй вид proxy_pass Целевой адрес не включен по умолчанию. /,Указывает только имя прокси-домена,url и часть параметра не изменится (замените запрошенную path Соединен с proxy_pass URL-адрес после имени целевого домена в качестве прокси)
  • Третий вид proxy_pass Целевой адрес добавляется после /,значит поставить path середина location Отрежьте успешно совпавшие части и прочитайте их снова. с proxy_pass адрес назначения

Второе соответствующее название 4. Примеры обычных агентов

Третий соответствующий заголовок 3. Пример перехвата пути прокси для определения местоположения

2. конфигурация местоположения

Язык кода:javascript
копировать
location [ = | ~ | ~* | ^~ ] uri { 
   ...}

Содержимое в квадратных скобках перед URI не является обязательным и объясняется следующим образом:

"=":для стандартаuriвперед,Требовать, чтобы строка запроса строго соответствовала URI.,Остановитесь, как только матч будет успешным.

"~":Используется для регулярногоuriвперед,и чувствителен к регистру

"~*":Используется для регулярногоuriвперед,но не чувствителен к регистру

"^~":для стандартаuriвперед,После требования от Nginx найти местоположение с наибольшей степенью соответствия между идентификатором uri и строкой запроса.,Немедленно используйте это местоположение для обработки запроса.,Вместо использования обычного uri блока местоположения середина для соответствия строке запроса

3. Пример перехвата пути прокси для определения местоположения

Например, следующая конфигурация демонстрирует третью схему конфигурации. Когда мы получаем доступ. http://44.179.118.54:80/shop/xxx когда

доступкогда Nginx воля /shop/ Отрезаем его и ставим следующее path Соединен с proxy_pass начальство

Итак, на самом деле мы получаем доступ к: http://44.179.118.54:8007/xxx этот сервис.

второй визит http://44.179.118.54:8007/addrdata/xxx На самом деле это визит http://44.179.118.54:8007/xxx этот сервис.

Эффекты, достигаемые этими двумя методами настройки, согласуются.

В основном proxy_pass Добавить после адреса / и без добавления / Логика обработки совершенно другая.

Язык кода:javascript
копировать
 # shop-service
 # Сервис-магазин-сервис обратных прокси
location ^~ /shop/ {
       proxy_pass  http://44.179.118.54:8007/;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 300s;

       proxy_redirect    off;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header Host $http_host;
       proxy_next_upstream http_502 http_504 error timeout invalid_header;
}

# Эффект здесь согласуется с эффектом конфигурации поверхности начального уровня.
location ~ ^/addrdata/(.*) {
       proxy_pass  http://44.179.118.54:8007/$1$is_args$args;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_read_timeout 300s;

       proxy_redirect    off;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header Host $http_host;
       proxy_next_upstream http_502 http_504 error timeout invalid_header;
}

4. Примеры обычных агентов

Таким образом мы получаем доступ http://19.11.11.70:8888/test-api/xxx На самом деле это визит http://19.11.11.71:8088/test-api/xxx,Просто помоги 19.11.11.71:8088 Порт имеет уровень прокси

Язык кода:javascript
копировать
server { 
   
    listen       8888;
    server_name  19.11.11.70;
    client_max_body_size     10240m; #Измените его на то, что вы хотите установить Hclient_body_timeout 6000s;
    client_header_timeout 600;
    client_body_buffer_size 128m;
    send_timeout 300s;
    keepalive_timeout 300s;

    location /test-api { 
   
        proxy_pass  http://19.11.11.71:8088/test-api;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 300s;

        proxy_redirect    off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
    }
}

5. Пример настройки фронтенда

Язык кода:javascript
копировать
# root Оглавление настроить интерфейс
# Размещение на сайте /home/java/nginx/cn_abd-app/abd-app
location / { 
   
    root /home/java/nginx/cn_abd-app/abd-app/;
    index index.html index.htm;
    try_files $uri $uri/ /index.html;
}

# некорневой Оглавление настроить интерфейс
# Размещение на сайте /home/java/nginx/cn_bbd-app/bbd-app
location /bbd-app { 
   
    root   /home/java/nginx/cn_bbd-app/;
    index  index.html index.htm;
    try_files $uri $uri/ /bbd-app/index.html;
}

# Некорневое Оглавление настроить интерфейс вторичной маршрутизации
# Размещение на сайте /home/java/nginx/cn_bbd-app/app/bbd-app
location /app/bbd-app { 
   
    root   /home/java/nginx/cn_bbd-app/;
    index  index.html index.htm;
    try_files $uri $uri/ /app/bbd-app/index.html;
}

# Некорневое Оглавление настроить внешний интерфейс маршрутизации хэша
# Размещение на сайте /home/java/nginx/cn_bbd-app/share 
location /share { 
   
    root /home/java/nginx/cn_bbd-app/;
    index index.html index.htm;
 }

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Этот сайт предоставляет только услуги по хранению информации, не имеет никаких прав собственности и не принимает на себя соответствующие юридические обязательства. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/180278.html Исходная ссылка: https://javaforall.cn

boy illustration
Высокоуровневые операции Mongo, если данные не существуют, вставка и обновление, если они существуют (pymongo)
boy illustration
Проектирование и внедрение системы управления электронной коммерцией на базе Vue и SpringBoot.
boy illustration
Статья длиной в 9000 слов знакомит вас с процессом запуска SpringBoot — самым подробным процессом запуска SpringBoot в истории — с изображениями и текстом.
boy illustration
Как настроить размер экрана в PR. Учебное пособие по настройке размера видео в PR [подробное объяснение]
boy illustration
Элегантный и мощный: упростите операции ElasticSearch с помощью easy-es
boy illustration
Проект аутентификации по микросервисному токену: концепция и практика
boy illustration
【Java】Решено: org.springframework.http.converter.HttpMessageNotWritableException.
boy illustration
Изучите Kimi Smart Assistant: как использовать сверхдлинный текст, чтобы открыть новую сферу эффективной обработки информации
boy illustration
Начало работы с Docker: использование томов данных и монтирования файлов для хранения и совместного использования данных
boy illustration
Использование Python для реализации автоматической публикации статей в публичном аккаунте WeChat
boy illustration
Разберитесь в механизме и принципах взаимодействия потребителя и брокера Kafka в одной статье.
boy illustration
Spring Boot — использование Resilience4j-Circuitbreaker для реализации режима автоматического выключателя_предотвращения каскадных сбоев
boy illustration
13. Springboot интегрирует Protobuf
boy illustration
Примечание. Инструмент управления батареями Dell Dell Power Manager
boy illustration
Общая интерпретация класса LocalDate [java]
boy illustration
[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
boy illustration
Настоящий бой! Подключите Passkey к своему веб-сайту для безопасного входа в систему без пароля.
boy illustration
Руководство по настройке Nginx: как найти, интерпретировать и оптимизировать настройки Nginx в Linux
boy illustration
Typecho отображает использование памяти сервера
boy illustration
Как вставить элемент перед указанным ключом в ассоциативный массив в PHP
boy illustration
swagger2 экспортирует API как текстовый документ (реализация Java) [легко понять]
boy illustration
Выбор фреймворка nodejs Express koa egg MidwayJS сравнение NestJS
boy illustration
Руководство по загрузке, установке и использованию SVN «Рекомендуемая коллекция»
boy illustration
Интерфейс PHPforwarding_php отправляет запрос на получение
boy illustration
Создавайте и защищайте связь в реальном времени с помощью SignalR и Azure Active Directory.
boy illustration
ВичатПубличная платформаразвивать(три)——ВичатQR-кодгенерировать&Сканировать кодсосредоточиться на
boy illustration
[Углубленное понимание Java IO] Используйте InputStreamReader для чтения содержимого файла и легкого выполнения задач преобразования текста.
boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python