【Front-end Dictionary】Как объяснить боссу использование обратного прокси

внешний интерфейс Nginx

предисловие

Статья, которую я вижу сейчас, является третьей исправленной версией.

Прочитав ее, мой начальник прокомментировал эту статью: почерк хороший, предложения ровные, верстка нормальная, но что такое реверс прокси, до сих пор неясно? Поэтому я попытался объяснить термины «прямой прокси» и «обратный прокси» тем, кто не связан с ИТ.

Далее я попытаюсь сначала объяснить публике понятие «агент». Объясните «прямой прокси» и «обратный прокси» с профессиональной точки зрения.

Реализация концепции

Прежде чем говорить о концепции агентства, позвольте мне провести аналогию. Это также процесс, который я объяснил своему боссу.

К счастью, я сообразителен, иначе карманные деньги этого месяца станут для меня ножом. Но как мне это объяснить? Людям, у которых нет основы языка программирования, это нервирует!

Когда у нее не было мыслей, она вдруг спросила меня, ел ли я на ночь? Разве это не хороший пример?

После стольких объяснений я не знаю, действительно ли я понимаю это, или потому что я слишком сонный. Но у меня есть деньги, чтобы есть мясо.

Далее давайте серьезно рассмотрим «прямой прокси» и «обратный прокси».

концепция

Сначала посмотрите на пояснительную диаграмму, сначала получите общее представление.

Прямой прокси:

Это относится к серверу, расположенному между клиентом и исходным сервером.Чтобы получить контент с исходного сервера, клиент отправляет запрос на прокси и указывает цель (исходный сервер), а затем прокси пересылает запрос на исходный сервер и возвращает полученный контент клиенту. Клиент может использовать прямой прокси.

Обратный прокси (Обратный прокси):

Это относится к прокси-серверу, который принимает запрос на подключение в Интернете, а затем перенаправляет запрос на сервер во внутренней сети и возвращает результат, полученный от сервера, клиенту, запрашивающему подключение в Интернете. прокси-сервер ведет себя как обратный прокси-сервер.

Далее я уточню их характеристики.

Функции

прямой прокси

  1. Работа для клиентов;
  2. Скрыть настоящий клиент, отправьте и получать запросы на клиента и сделать реальный клиент невидимым на сервер;
  3. Всех пользователей в локальной сети может перенаправлять сервер, отвечающий за HTTP-запросы;
  4. Это означает, что связь с сервером осуществляется прямым прокси-сервером;

обратный прокси

  1. прокси-сервер;
  2. Настоящий сервер скрыт, отправляет и получает запросы на сервер, делая реальный сервер невидимым для клиента;
  3. Сервер балансировки нагрузки, который распределяет пользовательские запросы на простаивающие серверы;
  4. Это означает, что пользователь взаимодействует напрямую с сервером балансировки нагрузки, то есть, когда пользователь разрешает доменное имя сервера, получается IP-адрес сервера балансировки нагрузки;

точки соприкосновения

  1. Оба служат средним уровнем между сервером и клиентом.
  2. может усилить безопасность внутренней сети и предотвратить веб-атаки
  3. Может использоваться как механизм кэширования для повышения скорости доступа.

разница

  1. Прямой прокси-сервер фактически является прокси-сервером для клиента, а обратный прокси-сервер является прокси-сервером для сервера.
  2. В прямом прокси сервер не знает, кто настоящий клиент, в обратном прокси клиент не знает, кто настоящий сервер.
  3. Эффект разный. Прямой прокси в основном используется для решения проблемы ограничения доступа, а обратный прокси — для балансировки нагрузки, защиты безопасности и других функций.

Сказав так много, давайте поговорим о сценариях временных приложений агентов на работе.

практическое применение

Программное обеспечение Over the Wall - перенаправление прокси

Мы знаем, что в стране с доступомwww.google.comОн недоступен, потому что обычно доступ ограничен GFW.

Но если вы все еще хотите использовать Google для научного серфинга в Интернете, в настоящее время нам нужны некоторые прокси-серверы (поверхностное программное обеспечение), которые помогут нам запрашиватьwww.google.com, прокси вернет вам результат ответа.

Роль GFW в основном используется для анализа и фильтрации взаимного доступа между сетями внутри и за пределами Китая. То есть он может не только ограничить доступ местных пользователей сети к определенным зарубежным сайтам, но и ограничить доступ иностранных пользователей к отечественным сайтам. Обычно мы говорим «у стены», что означает, что доступ ограничен GFW. А «через стену», как следует из названия, означает прорваться через ограничения GFW.

Сервер Nginx - обратный прокси

Сервер Nginx имеет множество функций, таких как обратный прокси, балансировка нагрузки, сервер статических ресурсов и т. д.

Клиент может напрямую обращаться к серверу через протокол HTTP, но мы можем добавить сервер Nginx посередине, клиент запрашивает сервер Nginx, сервер Nginx запрашивает сервер приложений, а затем возвращает результат клиенту. , сервер Nginx является обратным прокси-сервером.

Настройте обратный прокси в конфигурации виртуального хоста

# 虚拟主机的配置
server {
    listen 8080;                         # 监听的端口
    server_name  192.168.1.1;            # 配置访问域名
    root  /data/toor;                    # 站点根目录
    error_page 502 404 /page/404.html;   # 错误页面
    location ^~ /api/  {                        # 使用 /api/ 代理 proxy_pass 的值
        proxy_pass http://192.168.20.1:8080;    # 被代理的应用服务器 HTTP 地址
    }
}

Приведенная выше простая конфигурация может реализовать функцию обратного прокси.

Конечно, обратные прокси также могут решать междоменные проблемы.

Для проектов, созданных с помощью vue-cli, мы знаем, что vue-cli использует плагин http-proxy-middleware для прокси-сервера и других конфигураций.

Таким образом, мы можем использовать proxyTable для установки таблицы сопоставления адресов. то есть использоватьproxyTableЭто свойство настроено для решения проблем, вызванных междоменными проблемами. Конфигурация выглядит следующим образом:

...
proxyTable: {
    '/weixin': {
        target: 'http://192.168.20.1:8080/', // 接口的域名
        secure: false,      // 如果是 https 接口,需要配置这个参数
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: {
            '^/weixin': ''
        }
    },
},
...

конфигурация балансировки нагрузки

# upstream 表示负载服务器池,定义名字为 my
upstream my {
    server 192.168.2.1:8080 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.2.2:8080 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.2.3:8080 weight=1 max_fails=2 fail_timeout=30s;
    server 192.168.2.4:8080 weight=1 max_fails=2 fail_timeout=30s;
   # 即在 30s 内尝试 2 次失败即认为主机不可用
  }

Балансировка нагрузки скорозапрос/данныеОпрос распределяется на несколько серверов для выполнения Ключом к балансировке нагрузки являетсяуниформа.

также черезip-hashМетод назначает запрос фиксированному серверу для обработки в соответствии с хеш-значением IP-адреса клиента.

Кроме того, аппаратная конфигурация сервера может отличаться, и настроенный сервер может обрабатывать больше запросов.weightпараметры для контроля.

План вывода статей, связанных с Vue

В последнее время друзья всегда спрашивали меня о Vue, поэтому я опубликую 9 статей, связанных с Vue, в надежде быть полезным для всех. Я буду обновлять один через 7-10 дней.

  1. [Внешний словарь] Процесс внедрения Vuex в жизненный цикл Vue
  2. [Внешний словарь] Анализ адаптивных принципов Vue
  3. [Внешний словарь] Процесс исправления новых и старых VNodes
  4. [Front-end словарь] Как разрабатывать функциональные компоненты и загружать в npm
  5. [Внешний словарь] Оптимизируйте свой проект Vue с учетом этих аспектов
  6. [Внешний словарь] Разработка внешнего интерфейса на основе дизайна Vue-Router
  7. [Front-end словарь] Как правильно использовать Webpack в проекте
  8. [Внешний словарь] Рендеринг Vue на стороне сервера
  9. [Внешний словарь] Как выбрать между Axios и Fetch

Предлагаю вам обратить внимание на мой официальный аккаунт и получать свежие статьи как можно скорее.

Если вы хотите добавить групповое общение, вы также можете добавить маленького умного робота, который будет автоматически подтягивать вас в группу:

Портал популярных статей

  1. [Front-end Dictionary] Решение проблемы проникновения прокрутки
  2. [Внешний словарь] Сравнение 5 видов реализации подвижных потолков (версия с повышением производительности)
  3. [Внешний словарь] 9 советов по CSS, которые сделают вас счастливее
  4. [Внешний словарь] Поделитесь 8 интересными и полезными API
  5. [Внешний словарь] Какие ссылки кэша задействованы от ввода URL до отображения (очень подробно)