1
0
mirror of git://f0xx.org/ac/ac-platform-edge synced 2026-07-29 02:19:05 +03:00

fe: cluster upstream for apps.f0xx.org; deprecate artc0 proxy

Add ac-fe-upstream.conf and apps.conf using ac_be_backend (cast01–03).
ac-fe.conf drops inline upstream; s.f0xx.org snippet uses cluster via separate commit.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Anton Afanasyeu
2026-06-24 17:45:12 +02:00
parent 93f4afcda9
commit be877cbf1a
3 changed files with 132 additions and 12 deletions

9
fe/ac-fe-upstream.conf Normal file
View File

@@ -0,0 +1,9 @@
# Shared cluster upstream — include in http {} before apps.conf / ac-fe.conf.
# STAGING/DEV: cast0103 lab cluster (no artc0).
upstream ac_be_backend {
server cast01.intra.raptor.org:80;
server cast02.intra.raptor.org:80 backup;
server cast03.intra.raptor.org:80 backup;
keepalive 8;
}

View File

@@ -1,20 +1,13 @@
# Android Cast FE — lab cluster + optional prod upstream switch.
# Android Cast FE — staging cluster (cast0103). No artc0 upstream.
# Target install on Gentoo FE (monstro): /etc/nginx/ac-fe.conf
# Enable: add to /etc/nginx/nginx.conf (http {}), after apps.conf:
# Enable in /etc/nginx/nginx.conf (http {}):
# include /etc/nginx/ac-fe-upstream.conf;
# include /etc/nginx/apps.conf;
# include /etc/nginx/ac-fe.conf;
#
# Reload: nginx -t && rc-service nginx reload
#
# Upstream: lab = cast01 cluster nginx :80; prod = artc0 BE :80.
# Edit ac_be_backend below before reload when cutting prod apps.f0xx.org to /issues/.
upstream ac_be_backend {
server cast01.intra.raptor.org:80;
server cast02.intra.raptor.org:80 backup;
server cast03.intra.raptor.org:80 backup;
# server artc0.intra.raptor.org:80; # prod cutover — uncomment and comment lab lines
keepalive 8;
}
# upstream ac_be_backend — see ac-fe-upstream.conf (shared with apps.f0xx.org)
# --- Lab public names (DNS → monstro FE → cluster BE) ---
# cluster.env: acl0.f0xx.org, c1c3.acl0.f0xx.org

118
fe/apps.conf Normal file
View File

@@ -0,0 +1,118 @@
# apps.f0xx.org — Android Cast public vhost (FE Gentoo).
# Install: /etc/nginx/apps.conf (symlink or copy from ac-platform-edge/fe/apps.conf)
# Requires: include /etc/nginx/ac-fe-upstream.conf; in http {} (upstream ac_be_backend).
#
# Upstream: cast0103 lab cluster (:80). Legacy artc0 BE is deprecated.
# Reload: nginx -t && rc-service nginx reload
server {
listen 80;
server_name apps.f0xx.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name apps.f0xx.org;
access_log /var/log/nginx/apps.intra.raptor.org.access_log main;
error_log /var/log/nginx/apps.intra.raptor.org.error_log info;
ssl_certificate /etc/letsencrypt/live/apps.f0xx.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/apps.f0xx.org/privkey.pem;
location ^~ /v0/ota/ {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
}
location = /app/androidcast_project/build {
return 301 $scheme://$host/app/androidcast_project/build/;
}
location ^~ /app/androidcast_project/build/ {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
client_max_body_size 512m;
}
include /etc/nginx/ac-fe.fragment;
location = /app/androidcast_project/graphs {
return 301 $scheme://$host/app/androidcast_project/graphs/;
}
location ^~ /app/androidcast_project/graphs/ {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
}
location = /app/androidcast_project {
return 301 $scheme://$host/app/androidcast_project/;
}
location ^~ /app/androidcast_project/ {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
}
location = /app/androidcast_project/git {
return 301 $scheme://$host/app/androidcast_project/git/;
}
location ^~ /app/androidcast_project/git/ {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800s;
proxy_send_timeout 1800s;
client_max_body_size 512m;
}
location / {
proxy_pass http://ac_be_backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
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;
proxy_connect_timeout 120s;
proxy_send_timeout 120s;
proxy_read_timeout 180s;
proxy_buffers 16 16m;
proxy_buffer_size 16m;
client_body_buffer_size 16m;
client_max_body_size 16m;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache_bypass $http_upgrade;
}
location ~ /\.ht {
deny all;
}
}