nginx: реверс прокси

Просмотров: 1961Комментарии: 0
ВкусняшкиFAQ SolutionLinux
nginx: реверс прокси

Привет, мой дорогой друг smile. Сегодня хочу рассказать как использовать nginx как реверс прокси, не для веба.

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

Первым делом для теста был быстренько поднят локальный актуальный Deban и на него водружен nginx, а затем пошли эксперементы с проксированием TCP.

Бегло изучив документацию стало понятно, что нужно использовать директивы stream и upstream nginxа.

Стоит отметить, что директиву stream нужно использовать отдельно от стандартной http, поэтому в директории /etc/nginx/ создадим новую директорию application, для использования проксирования приложений, и а самый конец файла конфигурации /etc/nginx/nginx.conf добавим возможность импорта application конфигураций из нового каталога указав строку "include /etc/nginx/application/*.conf;".

Теперь для примера укажу конфигурацию конфигурацию:

stream {

proxy_protocol on;

log_format log_stream '$remote_addr [$time_local] $protocol [$ssl_preread_server_name] [$ssl_preread_alpn_protocols] '

'$status $bytes_sent $bytes_received $session_time';

access_log /var/log/nginx/access.log log_stream;

error_log /var/log/nginx/error.log;

map $ssl_preread_server_name $name {

kms.olorg.ru kms;

}

upstream kms {

server server_one.loc:1688;

server server_two.loc:1688;

server server_three.loc:1688;

server server_four.loc:1688;

server server_five.loc:1688;

}

server {

listen 1688 proxy_protocol;

proxy_pass $name;

ssl_preread on;

}

}

Собственно таким образом было открыто прослушивание по DNS имени, но может получиться, что клиент не передает имя, тогда в директиве map можно указать default значение дописав ниже "default kms;".

А еще прошу обратить внимание на сбор access и error логов.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)