-
Notifications
You must be signed in to change notification settings - Fork 617
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
51 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
--- | ||
title: "GRPC Proxy" | ||
since: "1.5.10" | ||
--- | ||
|
||
fabio can run a transparent GRPC proxy which dynamically forwards an incoming | ||
RPC on a given port to services which advertise rpc service or method. To use GRPC | ||
proxy support the service needs to advertise `urlprefix-/my.service/Method proto=grpc` in | ||
Consul. In addition, fabio needs to be configured with a grpc listener: | ||
|
||
``` | ||
fabio -proxy.addr ':1234;proto=grpc' | ||
``` | ||
|
||
As per the HTTP/2 spec, the host header is not required, so host matching is not supported for GRPC proxying. | ||
|
||
GRPC proxy support can be combined with [Certificate Stores](/feature/certificate-stores/) to provide TLS termination on fabio. Configure `proxy.addr` with `proto=grpcs`. | ||
|
||
``` | ||
fabio -proxy.cs 'cs=ssl;type=path;path=/etc/ssl' -proxy.addr ':1234;proto=grpcs;cs=ssl' | ||
``` | ||
|
||
To support TLS upstream servers add the `proto=grpcs` option to the | ||
`urlprefix-` tag. The current implementation uses the clientca specified in the [Certificate Store](/feature/certificate-stores/) for the listener. To disable certificate | ||
validation for a target set the `tlsskipverify=true` option. | ||
|
||
``` | ||
urlprefix-/foo proto=grpcs | ||
urlprefix-/foo proto=grpcs tlsskipverify=true | ||
``` | ||
|
||
For TLS upstream servers (when using the consul registry) fabio will direct your traffic to an advertised service IP. If your service certificate does not contain an IP SAN, the certificate verification will fail. You can set the override the server name in the tls config by setting `grpcservername=<servername>` in the `urlprefix-` tag. | ||
|
||
``` | ||
urlprefix-/ proto=grpcs grpcservername=my.service.hostname | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters