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 variables
en la configuración, grpc_pass
deberí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 upstream
mensajes cuando se reinicie.