HAProxy HTTP vs TCP

17

HAProxy memberi Anda opsi untuk mengatur mode ke TCP atau HTTP. Ini juga memungkinkan Anda untuk mengatur port.

Jadi mengapa saya dapat memilih antara HTTP dan TCP, jika itu memungkinkan saya memilih port juga? Tentunya jika saya ingin HTTP saya hanya bisa memilih TCP dan port 80?

Mengapa hanya TCP dan HTTP? Tampaknya menyiratkan bahwa HTTP bukan TCP. Mengapa tidak memiliki TCP, HTTP, SNMP, FTP, dll, dll, dll.

Mengapa hanya HTTP dan TCP? Mengapa memiliki salah satu opsi itu jika HTTP adalah TCP? Menemukannya sangat membingungkan, dan sangat sulit untuk menemukan informasi tentang layanan non-http balancing balancing.

marflar
sumber

Jawaban:

28

Dengan menggunakan metode HTTP di konfigurasi HAProxy, Anda memiliki akses ke beberapa opsi HTTP spesifik. Misalnya, Anda dapat memilih backend yang berbeda berdasarkan URL dalam permintaan HTTP. Saat menentukan mode TCP, HAProxy tidak mengevaluasi header HTTP dalam paket.

Jadi, Anda pasti bisa menggunakan TCP untuk lalu lintas HTTP, tetapi Anda tidak akan memiliki opsi HTTP tambahan. Sebagai catatan tambahan, kecuali Anda menggunakan fitur SSL, Anda harus menggunakan TCP untuk lalu lintas HTTPS karena paket dienkripsi dan HAProxy tidak dapat melihat header HTTP.

Paul Kroon
sumber
Terima kasih. Itu benar-benar membantu memahami semuanya bagi saya. Bersulang.
marflar
6

Seseorang menulis posting blog tentang ini: http://www.linickx.com/645/load-balance-anything-with-haproxy

Lagi pula, saya tidak tahu mengapa orang-orang yang memelihara haproxy menggunakan sintaks yang mereka pilih, saya tidak begitu menyukainya karena saya menganggapnya menyesatkan (mengatakan sesuatu dapat berupa sekrup HTTP atau TCP dengan otak saya), tetapi ternyata Anda dapat memuat saldo apa pun dengan HAProxy, dan jika bukan HTTP, cukup gunakan TCP dan nomor port yang benar.

marflar
sumber
HTTP adalah TCP pada layer transport, jadi seluruh aplikasi hanya TCP dengan beberapa spesialisasi untuk HTTP. Tautan yang bagus.
Signus