forked from Deuxfleurs/infrastructure
dummy server properly configured, nginx configuration for dummy server too, I just need to verify that the nginx configuration is properly modified when dummy server replicas are added/removed (done: it works)
This commit is contained in:
parent
fab59e7a7a
commit
560e1f1d90
4 changed files with 30 additions and 30 deletions
|
@ -10,9 +10,14 @@
|
||||||
1. Base components: things that need to be installed before services
|
1. Base components: things that need to be installed before services
|
||||||
|
|
||||||
* [x] Dummy HTTP server to have something to work with.
|
* [x] Dummy HTTP server to have something to work with.
|
||||||
* [x] Reverse-proxy/load-balancer: `nginx` is a good match for a one-node deployment. Installing it with Nomad/Consul will make me practice Consul Template etc.
|
* [x] Reverse-proxy/load-balancer: nginx is a good match for a one-node deployment. Installing it with Nomad/Consul will make me practice Consul Template etc.
|
||||||
* Generate services configuration outside the `nginx` service definition.
|
* [x] Generate services configuration outside the nginx service definition.
|
||||||
* TLS: Let's Encrypt will probably be part of the same job definition as `nginx`.
|
|
||||||
|
Can't do because of *separation of concerns*: files needed by nginx need to be defined in the nginx job specification.
|
||||||
|
|
||||||
|
Solution: each new service needs to add its nginx configuration to `app/nginx/config`.
|
||||||
|
|
||||||
|
* TLS: Let's Encrypt will probably be part of the same job definition as nginx.
|
||||||
|
|
||||||
2. Gitea migration
|
2. Gitea migration
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,6 @@ job "dummy-http-server" {
|
||||||
group "server-group" {
|
group "server-group" {
|
||||||
count = 5
|
count = 5
|
||||||
|
|
||||||
# update {
|
|
||||||
# canary = 1
|
|
||||||
# max_parallel = 5
|
|
||||||
# }
|
|
||||||
|
|
||||||
network {
|
network {
|
||||||
port "http" {}
|
port "http" {}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +22,7 @@ job "dummy-http-server" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
|
ports = ["http"]
|
||||||
image = "hashicorp/http-echo:latest"
|
image = "hashicorp/http-echo:latest"
|
||||||
args = [
|
args = [
|
||||||
"-listen", ":${NOMAD_PORT_http}",
|
"-listen", ":${NOMAD_PORT_http}",
|
||||||
|
|
17
hammerhead/app/nginx/config/dummy-http-server.tpl
Normal file
17
hammerhead/app/nginx/config/dummy-http-server.tpl
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
upstream dummy-http-server-backend {
|
||||||
|
{{ range service "dummy-http-server" }}
|
||||||
|
server {{ .Address }}:{{ .Port }};
|
||||||
|
{{ else }}
|
||||||
|
server 127.0.0.1:65535; # force a 502
|
||||||
|
{{ end }}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name dummy.hammerhead.luxeylab.net;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://dummy-http-server-backend;
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ job "nginx" {
|
||||||
|
|
||||||
network {
|
network {
|
||||||
port "http" {
|
port "http" {
|
||||||
static = 8080
|
static = 80
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,34 +19,16 @@ job "nginx" {
|
||||||
driver = "docker"
|
driver = "docker"
|
||||||
|
|
||||||
config {
|
config {
|
||||||
image = "nginx"
|
|
||||||
|
|
||||||
ports = ["http"]
|
ports = ["http"]
|
||||||
|
image = "nginx"
|
||||||
volumes = [
|
volumes = [
|
||||||
"local:/etc/nginx/conf.d",
|
"local:/etc/nginx/conf.d",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
template {
|
template {
|
||||||
data = <<EOF
|
data = file("../config/dummy-http-server.tpl")
|
||||||
upstream dummy-http-server-backend {
|
destination = "local/dummy-http-server.conf"
|
||||||
{{ range service "dummy-http-server" }}
|
|
||||||
server {{ .Address }}:{{ .Port }};
|
|
||||||
{{ else }}server 127.0.0.1:65535; # force a 502
|
|
||||||
{{ end }}
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 8080;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://dummy-http-server-backend;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
destination = "local/dummy-http-server-load-balancer.conf"
|
|
||||||
change_mode = "signal"
|
change_mode = "signal"
|
||||||
change_signal = "SIGHUP"
|
change_signal = "SIGHUP"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue