mirror of
https://github.com/thib8956/nginx-proxy
synced 2025-02-24 01:38:15 +00:00
docs: add proto to VIRTUAL_HOST_MULTIPORTS
This commit is contained in:
parent
9bd84fc95e
commit
a25b7ea1ef
@ -56,7 +56,7 @@ For each host defined into `VIRTUAL_HOST`, the associated virtual port is retrie
|
|||||||
|
|
||||||
### Multiple ports
|
### Multiple ports
|
||||||
|
|
||||||
If your container expose more than one service on different ports and those services need to be proxied, you'll need to use the `VIRTUAL_HOST_MULTIPORTS` environment variable. This variable takes virtual host, path, port and dest definition in YAML (or JSON) form, and completely override the `VIRTUAL_HOST`, `VIRTUAL_PORT`, `VIRTUAL_PATH` and `VIRTUAL_DEST` environment variables on this container.
|
If your container expose more than one service on different ports and those services need to be proxied, you'll need to use the `VIRTUAL_HOST_MULTIPORTS` environment variable. This variable takes virtual host, path, port and dest definition in YAML (or JSON) form, and completely override the `VIRTUAL_HOST`, `VIRTUAL_PORT`, `VIRTUAL_PROTO`, `VIRTUAL_PATH` and `VIRTUAL_DEST` environment variables on this container.
|
||||||
|
|
||||||
The YAML syntax should be easier to write on Docker compose files, while the JSON syntax can be used for CLI invocation.
|
The YAML syntax should be easier to write on Docker compose files, while the JSON syntax can be used for CLI invocation.
|
||||||
|
|
||||||
@ -66,19 +66,21 @@ The expected format is the following:
|
|||||||
hostname:
|
hostname:
|
||||||
path:
|
path:
|
||||||
port: int
|
port: int
|
||||||
|
proto: string
|
||||||
dest: string
|
dest: string
|
||||||
```
|
```
|
||||||
|
|
||||||
For each hostname entry, `path`, `port` and `dest` are optional and are assigned default values when missing:
|
For each hostname entry, `path`, `port`, `proto` and `dest` are optional and are assigned default values when missing:
|
||||||
|
|
||||||
- `path` = "/"
|
- `path` = "/"
|
||||||
- `port` = default port
|
- `port` = default port
|
||||||
|
- `proto` = "http"
|
||||||
- `dest` = ""
|
- `dest` = ""
|
||||||
|
|
||||||
The following examples use an hypothetical container running services on port 80, 8000 and 9000:
|
|
||||||
|
|
||||||
#### Multiple ports routed to different hostnames
|
#### Multiple ports routed to different hostnames
|
||||||
|
|
||||||
|
The following example use an hypothetical container running services over HTTP on port 80, 8000 and 9000:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
multiport-container:
|
multiport-container:
|
||||||
@ -111,12 +113,14 @@ services:
|
|||||||
|
|
||||||
This would result in the following proxy config:
|
This would result in the following proxy config:
|
||||||
|
|
||||||
- `www.example.org` -> `multiport-container:80`
|
- `www.example.org` -> `multiport-container:80` over `HTTP`
|
||||||
- `service1.example.org` -> `multiport-container:8000`
|
- `service1.example.org` -> `multiport-container:8000` over `HTTP`
|
||||||
- `service2.example.org` -> `multiport-container:9000`
|
- `service2.example.org` -> `multiport-container:9000` over `HTTP`
|
||||||
|
|
||||||
#### Multiple ports routed to same hostname and different paths
|
#### Multiple ports routed to same hostname and different paths
|
||||||
|
|
||||||
|
The following example use an hypothetical container running services over HTTP on port 80 and 8000 and over HTTPS on port 9443:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
multiport-container:
|
multiport-container:
|
||||||
@ -130,11 +134,12 @@ services:
|
|||||||
port: 8000
|
port: 8000
|
||||||
dest: "/"
|
dest: "/"
|
||||||
"/service2":
|
"/service2":
|
||||||
port: 9000
|
port: 9443
|
||||||
|
proto: "https"
|
||||||
dest: "/"
|
dest: "/"
|
||||||
|
|
||||||
# port and dest are not specified on the / path, so this path is routed
|
# port and dest are not specified on the / path, so this path is routed to the
|
||||||
# to the default port with the default dest value (empty string)
|
# default port with the default dest value (empty string) and default proto (http)
|
||||||
|
|
||||||
# JSON equivalent:
|
# JSON equivalent:
|
||||||
# VIRTUAL_HOST_MULTIPORTS: |-
|
# VIRTUAL_HOST_MULTIPORTS: |-
|
||||||
@ -142,16 +147,16 @@ services:
|
|||||||
# "www.example.org": {
|
# "www.example.org": {
|
||||||
# "/": {},
|
# "/": {},
|
||||||
# "/service1": { "port": 8000, "dest": "/" },
|
# "/service1": { "port": 8000, "dest": "/" },
|
||||||
# "/service2": { "port": 9000, "dest": "/" }
|
# "/service2": { "port": 9443, "proto": "https", "dest": "/" }
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
```
|
```
|
||||||
|
|
||||||
This would result in the following proxy config:
|
This would result in the following proxy config:
|
||||||
|
|
||||||
- `www.example.org` -> `multiport-container:80`
|
- `www.example.org` -> `multiport-container:80` over `HTTP`
|
||||||
- `www.example.org/service1` -> `multiport-container:8000`
|
- `www.example.org/service1` -> `multiport-container:8000` over `HTTP`
|
||||||
- `www.example.org/service2` -> `multiport-container:9000`
|
- `www.example.org/service2` -> `multiport-container:9443` over `HTTPS`
|
||||||
|
|
||||||
⬆️ [back to table of contents](#table-of-contents)
|
⬆️ [back to table of contents](#table-of-contents)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user