Введение
Nginx — это высокопроизводительный HTTP-сервер и обратный прокси-сервер.
Двумя наиболее часто используемыми функциями являются обратный прокси-сервер и балансировка нагрузки.
обратный прокси
Обратный прокси является противоположностью прямого прокси.
Обычные прокси-серверы требуют от пользователей активной настройки. Пользователи настраивают и подключаются к прокси-серверу на своих компьютерах. Таким способом можно скрыть собственный IP, чтобы сервер приложений не знал IP-адреса клиента.
Обратный прокси-сервер устанавливается на сервер как прокси для сервера приложений.Обратный прокси-сервер, к которому фактически обращается клиент, Затем обратный прокси-сервер обращается к реальному серверу приложений и затем передает полученный ответ клиенту.
Настроить обратный прокси с помощью Nginx очень просто, базовая конфигурация выглядит следующим образом:
upstream web {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name web.coolcat.com;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 5m;
proxy_pass http://web;
}
}
Доменное имя задается в указанном выше файле конфигурации.web.coolcat.com,
Все запросы на этот домен будут направлены наhttp://webначальство.
по конфигурацииupstream, мы можем обнаружить, что фактический трафик перенаправляется на127.0.0.1:8081вверх.
Таким образом реализуется обратный прокси.
балансировки нагрузки
Балансировка нагрузки и обратный прокси неразделимы, и балансировка нагрузки обычно основана на обратном прокси.
Так называемая балансировка нагрузки относится к переадресации нескольких запросов на разные внутренние серверы.
upstream web {
server 127.0.0.1:8081;
}
В приведенной выше конфигурации обратного прокси-сервера задан только один адрес внутреннего сервера, Если вы добавите еще несколько, вы добьетесь простейшей балансировки нагрузки.
голосование
Стратегия опроса распределяет запросы по порядку.
upstream web {
server 192.168.1.1:8081;
server 192.168.1.2:8081;
}
взвешенная круговая система
Взвешенная стратегия распределяет запросы пропорционально.
upstream web {
server 192.168.1.1:8081 weight=4;
server 192.168.1.2:8081 weight=6;
}
Вероятность доступа двух вышеуказанных серверов равна четырем или шести.
наименее подключенный
Наименьшее количество подключений распределяет запросы на сервер с наименьшим количеством текущих подключений.
upstream web {
least_conn;
server 192.168.1.1:8081;
server 192.168.1.2:8081;
}
ip_hash
Все подключения с одного и того же IP-адреса назначаются одному и тому же серверу, обычно используемому для会话保持.
upstream web {
ip_hash;
server 192.168.1.1:8081;
server 192.168.1.2:8081;
}
Универсальный хэш
Используйте хэш для настройки ключа, который будет вычисляться. В примере используется адрес запроса.
можешь выбратьconsistentПараметр может указывать на использование согласованного алгоритма хеширования.
upstream web {
hash $request_uri;
# hash $request_uri consistent;
server 192.168.1.1:8081;
server 192.168.1.2:8081;
}
Ссылаться на:
Суммировать
Nginx — очень часто используемый прокси-сервер, его функции очень мощны, а его производительность также очень высока. Для получения дополнительной информации см.официальная документация.
Текущий раздел кода
как версияv0.14.0