configuración grpc_pass nginx

configuración grpc_pass nginx

Cuando hago lo mismo con el solucionador y configuro grpc_pass, falla:

    `server {
        listen 443 http2:
        server _name opc.org.com;
        ssl....;
        location / {
            resolver 127.0.0.11 valid=30s;
            set $https_webui https://dev_webui;
            proxy_pass $https_webui;
        }  
        location /App.Room.Api.Contract.ApiService/UpdateOpcDaTags {
            resolver 127.0.0.11 valid=30s;
            set $grpc_webui grpcs://dev_webui;
            grpc_pass $grpc_webui;
        }`

El error que recibo en grpc-client es:

    `[Microsoft.Extensions.Hosting.Internal.Host)
    [BackgroundServiceFaulted status   BackgroundServledGrpc.Co.RpcException
    (StatusCode="Unknown", Detail="Bad gRPC response. HTTP status code: 500")`

Cuando tienes una configuración similar a esta (ejemplo) funciona

        `location /App.Room.Api.Contract.ApiService/UpdateOpcDaTags {
         grpc_pass grpcs://dev_webui;
         }`

Versión nginx; nginx version: nginx/1.23.2

Respuesta1

Después de una larga revisión de los materiales y pruebas, se descubrió el error.

Si lo estamos usando variablesen la configuración, grpc_passdebería tener un puerto en el que se pueda escuchar este grpc, en este ejemplo https y grpcs usarán el puerto 443.

Entonces la configuración de trabajo para mí es:

`server {
    listen 443 http2:
    server _name opc.org.com;
    ssl....;
    location / {
        resolver 127.0.0.11 valid=30s;
        set $https_webui https://dev_webui;
        proxy_pass $https_webui;
    }  
    location /App.Room.Api.Contract.ApiService/UpdateOpcDaTags {
        resolver 127.0.0.11 valid=30s;
        set $grpc_webui grpcs://dev_webui:443;
        grpc_pass $grpc_webui;
    }`

Curiosamente, para proxy_pass no es necesario especificar el puerto, creo que debido a la indicación de https://

Con esta configuración, cualquier pila que mantenga nginx se puede eliminar de las pilas disponibles y nginx no enviará host not found in upstreammensajes cuando se reinicie.

información relacionada