const fs = require('fs');
const path = require('path');

// 检查nginx配置语法
const nginxConfigPath = path.join(__dirname, 'nginx.conf');
const nginxConfig = fs.readFileSync(nginxConfigPath, 'utf8');

console.log('检查nginx配置语法...');
console.log('='.repeat(50));

// 检查server块
const serverBlocks = nginxConfig.match(/server\s*{/g) || [];
console.log(`发现 ${serverBlocks.length} 个server块`);

// 检查location块
const locationBlocks = nginxConfig.match(/location\s+[^{]+{/g) || [];
console.log(`发现 ${locationBlocks.length} 个location块`);

// 检查API相关的location块
const apiLocationBlocks = locationBlocks.filter(block => 
  block.includes('/api') || block.includes('proxy_pass')
);

console.log(`\nAPI相关的location块:`);
apiLocationBlocks.forEach((block, index) => {
  console.log(`${index + 1}. ${block.trim()}`);
});

// 检查是否有重复的location路径
const locationPaths = locationBlocks.map(block => {
  const pathMatch = block.match(/location\s+([^{]+)/);
  return pathMatch ? pathMatch[1].trim() : '';
});

const duplicatePaths = locationPaths.filter((path, index) => 
  locationPaths.indexOf(path) !== index && path !== ''
);

if (duplicatePaths.length > 0) {
  console.log('\n❌ 发现重复的location路径:');
  duplicatePaths.forEach(path => {
    console.log(`   - ${path}`);
  });
} else {
  console.log('\n✅ 没有重复的location路径');
}

// 检查proxy_pass配置
const proxyPassBlocks = nginxConfig.match(/proxy_pass\s+[^;]+;/g) || [];
console.log(`\nproxy_pass配置:`);
proxyPassBlocks.forEach((block, index) => {
  console.log(`${index + 1}. ${block.trim()}`);
});

// 检查是否有路径重复的proxy_pass
const problematicProxyPass = proxyPassBlocks.filter(block => {
  const url = block.match(/proxy_pass\s+([^;]+);/);
  if (url) {
    const proxyUrl = url[1].trim();
    // 检查是否以/api/结尾
    return proxyUrl.endsWith('/api/');
  }
  return false;
});

if (problematicProxyPass.length > 0) {
  console.log('\n⚠️  发现可能有问题的proxy_pass配置:');
  problematicProxyPass.forEach(block => {
    console.log(`   - ${block.trim()}`);
  });
  console.log('   这些配置可能导致路径重复问题');
} else {
  console.log('\n✅ proxy_pass配置看起来正常');
}

console.log('\n' + '='.repeat(50));
console.log('nginx配置检查完成');
