предисловие
Статья, которую я вижу сейчас, является третьей исправленной версией.
Прочитав ее, мой начальник прокомментировал эту статью: почерк хороший, предложения ровные, верстка нормальная, но что такое реверс прокси, до сих пор неясно? Поэтому я попытался объяснить термины «прямой прокси» и «обратный прокси» тем, кто не связан с ИТ.
Далее я попытаюсь сначала объяснить публике понятие «агент». Объясните «прямой прокси» и «обратный прокси» с профессиональной точки зрения.
Реализация концепции
Прежде чем говорить о концепции агентства, позвольте мне провести аналогию. Это также процесс, который я объяснил своему боссу.
К счастью, я сообразителен, иначе карманные деньги этого месяца станут для меня ножом. Но как мне это объяснить? Людям, у которых нет основы языка программирования, это нервирует!Когда у нее не было мыслей, она вдруг спросила меня, ел ли я на ночь? Разве это не хороший пример?
После стольких объяснений я не знаю, действительно ли я понимаю это, или потому что я слишком сонный. Но у меня есть деньги, чтобы есть мясо.
Далее давайте серьезно рассмотрим «прямой прокси» и «обратный прокси».
концепция
Сначала посмотрите на пояснительную диаграмму, сначала получите общее представление.
Прямой прокси:
Это относится к серверу, расположенному между клиентом и исходным сервером.Чтобы получить контент с исходного сервера, клиент отправляет запрос на прокси и указывает цель (исходный сервер), а затем прокси пересылает запрос на исходный сервер и возвращает полученный контент клиенту. Клиент может использовать прямой прокси.
Обратный прокси (Обратный прокси):
Это относится к прокси-серверу, который принимает запрос на подключение в Интернете, а затем перенаправляет запрос на сервер во внутренней сети и возвращает результат, полученный от сервера, клиенту, запрашивающему подключение в Интернете. прокси-сервер ведет себя как обратный прокси-сервер.
Далее я уточню их характеристики.
Функции
прямой прокси
- Работа для клиентов;
- Скрыть настоящий клиент, отправьте и получать запросы на клиента и сделать реальный клиент невидимым на сервер;
- Всех пользователей в локальной сети может перенаправлять сервер, отвечающий за HTTP-запросы;
- Это означает, что связь с сервером осуществляется прямым прокси-сервером;
обратный прокси
- прокси-сервер;
- Настоящий сервер скрыт, отправляет и получает запросы на сервер, делая реальный сервер невидимым для клиента;
- Сервер балансировки нагрузки, который распределяет пользовательские запросы на простаивающие серверы;
- Это означает, что пользователь взаимодействует напрямую с сервером балансировки нагрузки, то есть, когда пользователь разрешает доменное имя сервера, получается IP-адрес сервера балансировки нагрузки;
точки соприкосновения
- Оба служат средним уровнем между сервером и клиентом.
- может усилить безопасность внутренней сети и предотвратить веб-атаки
- Может использоваться как механизм кэширования для повышения скорости доступа.
разница
- Прямой прокси-сервер фактически является прокси-сервером для клиента, а обратный прокси-сервер является прокси-сервером для сервера.
- В прямом прокси сервер не знает, кто настоящий клиент, в обратном прокси клиент не знает, кто настоящий сервер.
- Эффект разный. Прямой прокси в основном используется для решения проблемы ограничения доступа, а обратный прокси — для балансировки нагрузки, защиты безопасности и других функций.
Сказав так много, давайте поговорим о сценариях временных приложений агентов на работе.
практическое применение
Программное обеспечение 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 дней.
- [Внешний словарь] Процесс внедрения Vuex в жизненный цикл Vue
- [Внешний словарь] Анализ адаптивных принципов Vue
- [Внешний словарь] Процесс исправления новых и старых VNodes
- [Front-end словарь] Как разрабатывать функциональные компоненты и загружать в npm
- [Внешний словарь] Оптимизируйте свой проект Vue с учетом этих аспектов
- [Внешний словарь] Разработка внешнего интерфейса на основе дизайна Vue-Router
- [Front-end словарь] Как правильно использовать Webpack в проекте
- [Внешний словарь] Рендеринг Vue на стороне сервера
- [Внешний словарь] Как выбрать между Axios и Fetch
Предлагаю вам обратить внимание на мой официальный аккаунт и получать свежие статьи как можно скорее.
Если вы хотите добавить групповое общение, вы также можете добавить маленького умного робота, который будет автоматически подтягивать вас в группу:
Портал популярных статей
- [Front-end Dictionary] Решение проблемы проникновения прокрутки
- [Внешний словарь] Сравнение 5 видов реализации подвижных потолков (версия с повышением производительности)
- [Внешний словарь] 9 советов по CSS, которые сделают вас счастливее
- [Внешний словарь] Поделитесь 8 интересными и полезными API
- [Внешний словарь] Какие ссылки кэша задействованы от ввода URL до отображения (очень подробно)