Protocolul gRPC utilizează cadre binare Protocol Buffers peste transportul multiplexat HTTP/2, oferind performanțe substanțial superioare față de clasicele API-uri REST/JSON. Începând cu versiunea 1.13.10, Nginx oferă suport nativ complet pentru proxying-ul apelurilor gRPC prin intermediul directivei grpc_pass.
Iată cum se configurează un bloc de server Nginx pentru a termina conexiunea TLS securizată din exterior și a distribui apelurile gRPC către instanțele interne:
upstream grpc_service_cluster {
zone grpc_zone 64k;
server 10.0.0.11:50051;
server 10.0.0.12:50051;
keepalive 32;
}
server {
listen 443 ssl http2;
server_name grpc.exemplu.ro;
ssl_certificate /etc/letsencrypt/live/exemplu.ro/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exemplu.ro/privkey.pem;
location /utilizatori.ServiciuAutentificare/ {
# Rutare gRPC către clusterul de backend
grpc_pass grpc://grpc_service_cluster;
grpc_read_timeout 60s;
grpc_send_timeout 60s;
# Propagare metadate și antete de apel
grpc_set_header X-Real-IP $remote_addr;
}
}
Datorită multiplexării HTTP/2 native, Nginx menține o singură conexiune TCP persistentă per client, rutând sute de apeluri RPC concurente cu o latență neglijabilă.
Întrebări & Exemple de Cod:
Nginx gRPC Proxy: Rutarea și Load Balancing pentru Microservicii gRPC cu grpc_passAi o nelămurire despre utilizarea comenzii
Nginx gRPC Proxy: Rutarea și Load Balancing pentru Microservicii gRPC cu grpc_passsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.