164 lines
4.2 KiB
Plaintext
164 lines
4.2 KiB
Plaintext
# proxy-vm/nginx/locations.conf
|
|
# Shared location blocks — included by both HTTP and HTTPS server blocks.
|
|
|
|
# --- Health check (no auth) ---
|
|
location = /health {
|
|
access_log off;
|
|
default_type application/json;
|
|
return 200 '{"status":"ok","version":"1.0"}';
|
|
}
|
|
|
|
# --- ElevenLabs ---
|
|
location /elevenlabs/ {
|
|
if ($allowed_ip = 0) {
|
|
return 403 '{"error":"ip_not_allowed"}';
|
|
}
|
|
if ($auth_ok = 0) {
|
|
return 403 '{"error":"invalid_token"}';
|
|
}
|
|
|
|
set $elevenlabs_upstream https://api.elevenlabs.io;
|
|
rewrite ^/elevenlabs/(.*) /$1 break;
|
|
|
|
proxy_pass $elevenlabs_upstream;
|
|
proxy_ssl_server_name on;
|
|
proxy_ssl_name api.elevenlabs.io;
|
|
proxy_ssl_protocols TLSv1.2 TLSv1.3;
|
|
|
|
proxy_set_header Host api.elevenlabs.io;
|
|
proxy_set_header Connection "";
|
|
|
|
proxy_set_header X-Forwarded-For "";
|
|
proxy_set_header X-Real-IP "";
|
|
proxy_set_header True-Client-IP "";
|
|
proxy_set_header CF-Connecting-IP "";
|
|
proxy_set_header X-Client-IP "";
|
|
proxy_set_header Forwarded "";
|
|
proxy_set_header Via "";
|
|
|
|
proxy_set_header X-Proxy-Token "";
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_read_timeout 120s;
|
|
proxy_send_timeout 120s;
|
|
}
|
|
|
|
# --- OpenAI ---
|
|
location /openai/ {
|
|
if ($allowed_ip = 0) {
|
|
return 403 '{"error":"ip_not_allowed"}';
|
|
}
|
|
if ($auth_ok = 0) {
|
|
return 403 '{"error":"invalid_token"}';
|
|
}
|
|
|
|
set $openai_upstream https://api.openai.com;
|
|
rewrite ^/openai/(.*) /$1 break;
|
|
|
|
proxy_pass $openai_upstream;
|
|
proxy_ssl_server_name on;
|
|
proxy_ssl_name api.openai.com;
|
|
proxy_ssl_protocols TLSv1.2 TLSv1.3;
|
|
|
|
proxy_set_header Host api.openai.com;
|
|
proxy_set_header Connection "";
|
|
|
|
proxy_set_header X-Forwarded-For "";
|
|
proxy_set_header X-Real-IP "";
|
|
proxy_set_header True-Client-IP "";
|
|
proxy_set_header CF-Connecting-IP "";
|
|
proxy_set_header X-Client-IP "";
|
|
proxy_set_header Forwarded "";
|
|
proxy_set_header Via "";
|
|
|
|
proxy_set_header X-Proxy-Token "";
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_read_timeout 120s;
|
|
proxy_send_timeout 120s;
|
|
}
|
|
|
|
# --- Telegram Bot API ---
|
|
location /telegram/ {
|
|
if ($allowed_ip = 0) {
|
|
return 403 '{"error":"ip_not_allowed"}';
|
|
}
|
|
if ($auth_ok = 0) {
|
|
return 403 '{"error":"invalid_token"}';
|
|
}
|
|
|
|
set $telegram_upstream https://api.telegram.org;
|
|
rewrite ^/telegram/(.*) /$1 break;
|
|
|
|
proxy_pass $telegram_upstream;
|
|
proxy_ssl_server_name on;
|
|
proxy_ssl_name api.telegram.org;
|
|
proxy_ssl_protocols TLSv1.2 TLSv1.3;
|
|
|
|
proxy_set_header Host api.telegram.org;
|
|
proxy_set_header Connection "";
|
|
|
|
proxy_set_header X-Forwarded-For "";
|
|
proxy_set_header X-Real-IP "";
|
|
proxy_set_header True-Client-IP "";
|
|
proxy_set_header CF-Connecting-IP "";
|
|
proxy_set_header X-Client-IP "";
|
|
proxy_set_header Forwarded "";
|
|
proxy_set_header Via "";
|
|
|
|
proxy_set_header X-Proxy-Token "";
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_read_timeout 120s;
|
|
proxy_send_timeout 120s;
|
|
}
|
|
|
|
# --- openrouter Bot API ---
|
|
location /openrouter/ {
|
|
if ($allowed_ip = 0) {
|
|
return 403 '{"error":"ip_not_allowed"}';
|
|
}
|
|
|
|
set $openrouter_upstream https://openrouter.ai/api/v1;
|
|
rewrite ^/openrouter/(.*) /$1 break;
|
|
|
|
proxy_pass $openrouter_upstream;
|
|
proxy_ssl_server_name on;
|
|
proxy_ssl_name openrouter.ai;
|
|
proxy_ssl_protocols TLSv1.2 TLSv1.3;
|
|
|
|
proxy_set_header Host openrouter.ai;
|
|
proxy_set_header Connection "";
|
|
|
|
proxy_set_header X-Forwarded-For "";
|
|
proxy_set_header X-Real-IP "";
|
|
proxy_set_header True-Client-IP "";
|
|
proxy_set_header CF-Connecting-IP "";
|
|
proxy_set_header X-Client-IP "";
|
|
proxy_set_header Forwarded "";
|
|
proxy_set_header Via "";
|
|
|
|
proxy_set_header X-Proxy-Token "";
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_buffer_size 16k;
|
|
proxy_buffers 4 16k;
|
|
proxy_busy_buffers_size 32k;
|
|
proxy_read_timeout 120s;
|
|
proxy_send_timeout 120s;
|
|
}
|
|
|
|
# --- Catch-all ---
|
|
location / {
|
|
default_type application/json;
|
|
return 404 '{"error":"unknown_upstream","hint":"use /elevenlabs/, /openai/ or /telegram/ or /openrouter/"}';
|
|
}
|