const axios = require('axios'); // 测试nginx重启后的修复效果 async function testNginxRestartFix() { console.log('🔍 测试nginx重启后的修复效果...\n'); console.log('📝 修复说明:'); console.log(' 将 proxy_pass http://localhost:5352'); console.log(' 改为 proxy_pass http://localhost:5352/api/government/'); console.log(' 这样可以正确代理到后端API路径\n'); const testCases = [ { name: '部门列表接口', url: 'https://ad.ningmuyun.com/api/government/departments', shouldWork: true }, { name: '数据中心接口', url: 'https://ad.ningmuyun.com/api/government/data-center', shouldWork: true }, { name: '市场价格接口', url: 'https://ad.ningmuyun.com/api/government/market-price?type=beef', shouldWork: true }, { name: '岗位列表接口', url: 'https://ad.ningmuyun.com/api/government/positions', shouldWork: true }, { name: '养殖户列表接口', url: 'https://ad.ningmuyun.com/api/government/farmers', shouldWork: true }, { name: '登录接口', url: 'https://ad.ningmuyun.com/api/government/auth/login', method: 'POST', data: { username: 'admin', password: 'admin123' }, shouldWork: true, expectedStatus: 401 } ]; let successCount = 0; let failCount = 0; for (const test of testCases) { console.log(`📋 ${test.name}`); console.log(` URL: ${test.url}`); try { const config = { method: test.method || 'GET', url: test.url, headers: { 'Content-Type': 'application/json' }, timeout: 10000, validateStatus: function (status) { return status < 500; } }; if (test.data) { config.data = test.data; } const response = await axios(config); console.log(` 状态码: ${response.status}`); if (test.shouldWork) { if (test.expectedStatus) { if (response.status === test.expectedStatus) { console.log(` ✅ 成功: 返回预期状态码 ${test.expectedStatus}`); successCount++; } else { console.log(` ❌ 失败: 预期状态码 ${test.expectedStatus},实际 ${response.status}`); failCount++; } } else if (response.status === 200) { console.log(` ✅ 成功: 接口正常工作`); if (Array.isArray(response.data)) { console.log(` 📊 数据量: ${response.data.length} 条记录`); } else if (response.data && typeof response.data === 'object') { console.log(` 📊 数据类型: 对象,包含 ${Object.keys(response.data).length} 个字段`); } successCount++; } else if (response.status === 404) { console.log(` ❌ 失败: 接口返回 404`); failCount++; } } } catch (error) { if (error.response) { console.log(` 状态码: ${error.response.status}`); if (test.shouldWork) { console.log(` ❌ 失败: ${error.response.statusText}`); failCount++; } } else { console.log(` ❌ 网络错误: ${error.message}`); failCount++; } } console.log(' ' + '─'.repeat(60)); console.log(''); } console.log('🎯 测试完成!'); console.log(` ✅ 成功: ${successCount} 个`); console.log(` ❌ 失败: ${failCount} 个`); console.log(''); if (failCount === 0) { console.log('🎉 所有测试通过!Nginx配置修复成功!'); } else { console.log('⚠️ 还有测试失败,请检查:'); console.log(' 1. Nginx配置是否正确修改'); console.log(' 2. Nginx服务是否已重启'); console.log(' 3. 后端服务是否正常运行'); console.log(''); console.log('🔄 重启Nginx:'); console.log(' sudo nginx -t'); console.log(' sudo systemctl reload nginx'); } console.log(''); console.log('📝 当前nginx配置:'); console.log(' location ^~ /api/government/auth/ {'); console.log(' proxy_pass http://localhost:5352/api/auth/;'); console.log(' }'); console.log(' location ^~ /api/government/ {'); console.log(' proxy_pass http://localhost:5352/api/government/;'); console.log(' }'); console.log(''); console.log('🔄 路径映射:'); console.log(' /api/government/departments → http://localhost:5352/api/government/departments'); console.log(' /api/government/data-center → http://localhost:5352/api/government/data-center'); console.log(' /api/government/market-price → http://localhost:5352/api/government/market-price'); } // 运行测试 testNginxRestartFix().catch(console.error);