server { listen 4560; server_name _; location / { root /etc/nginx/html; index index.html index.htm; if ($request_method ~* "(GET|POST)") { add_header "Access-Control-Allow-Origin" *; } if ($request_method = OPTIONS ) { add_header "Access-Control-Allow-Origin" *; add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS, HEAD"; add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept"; return 200; } } location /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; if ($request_uri ~ ^/api/server/?(.*)$) { rewrite ^/api/server/?(.*)$ /server/$1 break; proxy_pass http://elysia-chat:4561; } if ($request_uri ~ ^/api/authorization/?(.*)$) { rewrite ^/api/authorization/?(.*)$ /server/$1 break; proxy_pass http://elysia-authorization:4562; } if ($request_uri ~ ^/api/chat/?(.*)$) { rewrite ^/api/chat/?(.*)$ /chat/$1 break; proxy_pass http://elysia-authorization:4563; } } location /oss/ { alias /etc/nginx/metadata; autoindex on; # 是否允许目录浏览(可选) autoindex_exact_size off; # 文件大小显示为可读形式(可选) autoindex_localtime off; # 显示文件本地时间(可选) } location /socket { proxy_pass http://elysia-chat:4563; # 必须支持 WebSocket 协议升级 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 一些可选头部 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }