-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnginx.conf
More file actions
131 lines (110 loc) · 3.11 KB
/
nginx.conf
File metadata and controls
131 lines (110 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
events {
worker_connections 1024;
}
http {
# Basic settings
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# Gzip compression
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types
text/plain
text/css
text/xml
text/javascript
application/json
application/javascript
application/xml+rss
application/atom+xml;
# Upstream definitions for backend services
upstream postgres {
server postgres:5432;
}
upstream redis {
server redis:6379;
}
upstream chromadb {
server chromadb:8000;
}
upstream minio-api {
server minio:9000;
}
upstream minio-console {
server minio:9001;
}
# ChromaDB API proxy
server {
listen 80;
server_name chromadb.* chroma.*;
location / {
proxy_pass http://chromadb;
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;
# Handle timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
}
# MinIO API proxy
server {
listen 80;
server_name minio-api.* s3.*;
# Increase client max body size for file uploads
client_max_body_size 100M;
location / {
proxy_pass http://minio-api;
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;
# Handle timeouts for large file uploads
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
}
}
# MinIO Console proxy
server {
listen 80;
server_name minio-console.* console.*;
location / {
proxy_pass http://minio-console;
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;
# WebSocket support for console
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# Health check endpoint
server {
listen 80 default_server;
server_name _;
location /health {
access_log off;
return 200 "AI Backend Services are healthy\n";
add_header Content-Type text/plain;
}
location /status {
access_log off;
return 200 "OK";
add_header Content-Type text/plain;
}
# Redirect root to health
location / {
return 301 /health;
}
}
}