Files
yuyueguahao/scripts/fix-nginx-uploads.sh
2026-07-05 14:43:34 +08:00

38 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
# 修复 Nginx /uploads/ 502 - 改用 proxy_pass 给 Express 端口 3000
# Express 已经能正常服务 /uploads/* (验证过 200)
NGINX_SITE=$(ls /etc/nginx/sites-enabled/yuyueguahao 2>/dev/null || ls /etc/nginx/conf.d/yuyueguahao.conf 2>/dev/null)
echo "Nginx site file: $NGINX_SITE"
if [ -z "$NGINX_SITE" ]; then
echo "未找到 nginx site config, 搜索 uploads 相关配置"
find /etc/nginx -name "*.conf" -exec grep -l "uploads" {} \;
exit 1
fi
echo "---BEFORE---"
grep -B1 -A4 uploads "$NGINX_SITE" 2>&1
# 替换 /uploads/ 的 location 为 proxy_pass
# 使用 sed 把 alias 那一行替换成 proxy_pass
sed -i '/location \/uploads\//,/^ }/{
s|alias .*|proxy_pass http://127.0.0.1:3000;|
s|autoindex off;||
}' "$NGINX_SITE"
echo "---AFTER---"
grep -B1 -A4 uploads "$NGINX_SITE" 2>&1
echo "---TEST CONFIG---"
nginx -t 2>&1 | tail -3
echo "---RELOAD NGINX---"
nginx -s reload 2>&1 || systemctl reload nginx 2>&1 || service nginx reload 2>&1
sleep 2
echo "---TEST IMAGE---"
curl -o /dev/null -s -w "HTTP %{http_code} size=%{size_download} type=%{content_type}\n" http://localhost/uploads/1781403331659-1cac3cac.png
echo "DONE"