Spaces:
Sleeping
Sleeping
File size: 5,276 Bytes
e48ff69 3ef791f e48ff69 f84728a e48ff69 f84728a 3ef791f f84728a e48ff69 f84728a e48ff69 904b7f9 3ef791f f84728a 3ef791f 904b7f9 1073da8 f84728a 1073da8 904b7f9 e48ff69 f84728a e48ff69 3ef791f e48ff69 f84728a e48ff69 f84728a e48ff69 3ef791f 5d369bb 3ef791f e48ff69 904b7f9 e48ff69 1073da8 904b7f9 1073da8 e48ff69 3e88f9b f84728a 3e88f9b 904b7f9 3ef791f 904b7f9 3ef791f 904b7f9 3ef791f 904b7f9 3ef791f e48ff69 904b7f9 e48ff69 3ef791f | 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 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | worker_processes auto;
events {
worker_connections 1024;
use epoll;
accept_mutex on;
multi_accept on;
}
http {
# 基础配置
include mime.types;
default_type application/octet-stream;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
# 性能优化
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
client_max_body_size 100M;
# Gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript
application/json application/javascript application/xml+rss
application/atom+xml image/svg+xml;
upstream appfast {
server localhost:8000;
keepalive 32;
}
upstream appflask {
server localhost:5000;
keepalive 32;
}
upstream supervisor {
server localhost:9001;
keepalive 32;
}
upstream appdjango {
server localhost:8001;
keepalive 32;
}
server {
listen 7860;
server_name localhost;
location /root {
alias "/app";
charset utf-8;
autoindex on;
}
# 健康检查端点
location /health {
access_log off;
add_header Content-Type application/json;
return 200 '{"status": "healthy", "timestamp": "$time_iso8601", "services": ["nginx", "fastapi", "flask"]}';
}
# 服务状态端点
location /status {
proxy_pass http://supervisor;
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;
allow 127.0.0.1;
deny all;
}
location /status2 {
# nginx status
stub_status on;
access_log off;
}
# 静态文件
location /static/ {
alias /app/static/;
expires 30d;
add_header Cache-Control "public, immutable";
}
# API 路由
location /appfast/ {
proxy_pass http://appfast/;
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 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
location /appflask/ {
proxy_pass http://appflask/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /supervisor/ {
proxy_pass http://supervisor/;
proxy_set_header Host $host:$proxy_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}
# appdjango 媒体文件
location /media/ {
alias /app/app_django/media/;
expires 30d;
}
# API 路由
location /api/ {
proxy_pass http://appdjango;
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 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
# 管理后台
location /admin/ {
proxy_pass http://appdjango;
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 / {
# proxy_pass http://appdjango;
# 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;
#}
}
} |