gRPC over Nginx proxy

After having some more time to look into the issue, I figured it out. There were two issues that prevented this from working:

  1. I was using an insecure gRPC connection to connect to an Nginx server that had SSL certs setup.
    I had to use cred, err := credentials.NewClientTLSFromFile("path_to_cert", "")
    and
    grpc.Dial(grpcHost, grpc.WithTransportCredentials(cred))
    to have Nginx accept the connection.

  2. The gRPC API endpoint was incorrect. The correct location for Chirpstack V3 is as follows:

location ~* /api(\.) {
	    grpc_pass grpc://localhost:8080;
}

Once I’ve made these changes, I was able to connect over gRPC on port 443.

Note: also make sure to enable http2 in Nginx like this:

 server {
        listen 443 ssl http2;
        ...
}