deployment/dev/guide-dev-hosting-charts/templates/cm/nginx-conf.yaml (40 lines of code) (raw):
apiVersion: v1
kind: ConfigMap
metadata:
name: {{.Release.Name}}-nginx-conf-cm
labels:
env: {{.Values.env}}
data:
default.conf: |
server {
listen 8080;
server_name ~^(?<subdomain>[^.]+)\.jb-guide-dev\.labs\.jb\.gg$;
resolver 8.8.8.8; # Use Google's public DNS server
resolver_timeout 5s; # Timeout for DNS resolution
location = /info/health-check/ {
add_header Content-Type text/plain;
return 200 "OK";
}
location / {
# Handle /guide/ specifically
location = /guide/ {
rewrite ^ /$subdomain/guide/index.html last;
}
# Handle /guide without trailing slash
location = /guide {
rewrite ^ /$subdomain/guide/index.html last;
}
# Match URLs with a trailing slash
if ($request_uri ~ ^/guide/(.+)/$) {
rewrite ^/guide/(.+)/$ /$subdomain/guide/$1/index.html last;
}
# Match URLs without a trailing slash
if ($request_uri ~ ^/guide/(.+)$) {
rewrite ^/guide/(.+)$ /$subdomain/guide/$1/index.html last;
}
# Handle requests for files (including any file extension)
location ~ ^/guide/(.+\..+)$ {
rewrite ^/guide/(.+\..+)$ /$subdomain/guide/$1 last;
}
proxy_pass https://jb-guide-prod-guide-static-atsaxr.storage.googleapis.com;
proxy_set_header Host jb-guide-prod-guide-static-atsaxr.storage.googleapis.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}