# 添加缓存配置 proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { listen 80; server_name localhost; # gzip 配置 gzip on; gzip_min_length 1k; gzip_comp_level 9; gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml; gzip_vary on; gzip_disable "MSIE [1-6]\."; # 前端静态文件 location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } # API 代理 location /api/ { proxy_pass http://music-api:3000/; # 修改 Cookie 域名配置 proxy_cookie_domain music-api $host; proxy_cookie_path / /api/; # 确保正确传递 Cookie proxy_set_header Cookie $http_cookie; 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; # 允许跨域 add_header Access-Control-Allow-Credentials 'true'; add_header Access-Control-Allow-Origin $http_origin; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ($request_method = 'OPTIONS') { return 204; } # 设置固定的 MUSIC_U Cookie proxy_set_header Cookie "MUSIC_U=001CC96D6EB0CA850B20DC73329686879BA829C9E1BC9AA75F451D59458171A9B0FFC279459A41B847E8A2C06EE1A42E332B33CC03B3C80AA2C9FE2920AB77FC09635E3ABEEC22DD2BDEB0A6C3EBA7AFE3AD3DF6184AFA51151618134156C7F8FE0A15540A4B601FABEFC6EEAEFC07019F35096A9DF817BC5E88DCA17A251A02352322ED48621150276C73AF49EEDAD98456CF7396793C1ADBF99D5222851DFB04B12D34C4E570A617B4DD9C39EA19E11E349A4150A1710E8B551CDFC33A8C447AB2B0349DBA42181D5DEBBF7F4CE5464A2E568B0C8066D61B315998A0D7417544869AB8352DCB3D94EAFC78E0AD245D00539E813EC8143F563E248AB4F303BF1A2B06680F9A2FAA1D1059125C463E299EFEEB632355EA8864C97470ECAD3A5C663A3D49A8AD184C8642D7B4C77BF73BBC; Max-Age=2147483647"; } # 错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }