Маршрут прокси-сервера Nginx tcp на основе протокола, аналогичного протоколу Haproxy

У меня проблема с nginx. Я написал собственный бэкэнд с портом 8888. А бэкэнд порта 9999 - это http-сервер.

Я хочу направить запрос на различие бэкэндов на базе tls termination origin pro tocol в Nginx, как и Haproxy.

Https (после завершения tls это http) запрос маршрута к httpBackend, в Haproxy я мог бы использовать use_backend **, если HTTP , затем запросить https: // aa.aa он возвращает веб-страницу.

Другие запросы TLS направляются к customBackend, в Haproxy я мог бы использовать код default_backend ** .

Итак, как я мог делать то же самое в Nginx, просто как Haproxy?

Спасибо!

Код Nginx:

stream {
        upstream custombackend{
                server 127.0.0.1:8888;
        }
        upstream httpbackend{
                server 127.0.0.1:9999;
        }
        server {
                listen 443 ssl;
                // only route to httpbackend..
                proxy_pass httpbackend;
                ssl_certificate /etc/cert/fullchain.cer;
                ssl_certificate_key /etc/cert/aa.aa.key;
        }
}
http{
    server {
        listen       9999;
        server_name  aa.aa;
        ......
}

Код Haproxy:

defaults
    log global
    mode tcp

frontend tls-in
    bind *:443 tfo ssl crt /etc/ssl/private/aa.aa.pem
    tcp-request content accept if HTTP
    tcp-request inspect-delay 5s
    // which Nginx code could route request just like below ??
    use_backend httpback if HTTP
    default_backend customback

backend customback
    server server1 127.0.0.1:8888

backend httpback
    server server1 127.0.0.1:9999
0
задан 11 April 2020 в 07:10
1 ответ

Ну, я нашел способ использовать ngx_stream_js_module, но я не думаю, что производительность может сравниться с Haproxy, поэтому я бы вместо этого использовал haproxy.

0
ответ дан 17 April 2020 в 03:49

Теги

Похожие вопросы