65 lines
2.9 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 正确测试广州Nginx代理
*/
const GZ = { ip: '43.139.217.141', port: 3910, key: 'zy_gtw_4a155446b7acc09fe46a2a29972c0ca5d9954da19c35dc23' }
async function callGK(srv, method, path, body = null) {
const url = `http://${srv.ip}:${srv.port}${path}`
const opts = { method, headers: { 'Authorization': `Bearer ${srv.key}`, 'Content-Type': 'application/json' } }
if (body) opts.body = JSON.stringify(body)
const res = await fetch(url, opts)
const text = await res.text()
try { return { status: res.status, data: JSON.parse(text) } }
catch { return { status: res.status, data: { raw: text } } }
}
async function exec(srv, cmd) {
const r = await callGK(srv, 'POST', '/exec', { cmd })
return r.data
}
async function main() {
console.log('═'.repeat(50))
console.log('📡 广州Nginx全链路测试')
console.log('═'.repeat(50))
// 1. 测试本地Nginx + 正确Host头
console.log('\n1⃣ 本地Nginx + Host头:')
const tests = [
['https://localhost/images/ (默认Host)', `curl -s -k --connect-timeout 5 -w "\\nHTTP:%{http_code}" https://localhost/images/ 2>&1 | tail -3`],
['https://localhost/images/ (Host:guanghulab.com)', `curl -s -k --connect-timeout 5 -H "Host: guanghulab.com" -w "\\nHTTP:%{http_code}" https://localhost/images/ 2>&1 | tail -3`],
['http://localhost/images/ (Host:guanghulab.com)', `curl -s --connect-timeout 5 -H "Host: guanghulab.com" -w "\\nHTTP:%{http_code}" http://localhost/images/ 2>&1 | tail -3`],
['https://localhost/ (首页)', `curl -s -k --connect-timeout 5 -H "Host: guanghulab.com" -w "\\nHTTP:%{http_code}" https://localhost/ 2>&1 | tail -3`],
]
for (const [name, cmd] of tests) {
const r = await exec(GZ, cmd)
console.log(` ${name}:`)
console.log(` ${(r.stdout || r.stderr || '').split('\\n').slice(-3).join('\\n ')}`)
}
// 2. 查看Nginx的错误日志
console.log('\n2⃣ Nginx错误日志(最后10行):')
const r1 = await exec(GZ, 'tail -10 /var/log/nginx/error.log 2>&1 || echo "no error log"')
console.log(' ', (r1.stdout || r1.stderr || '').slice(0, 500))
// 3. 检查代理的配置是否真的在正确位置
console.log('\n3⃣ 完整SSL server块检查:')
const r2 = await exec(GZ, "sed -n '/listen 443 ssl/,/^}$/p' /etc/nginx/sites-enabled/guanghulab | head -60")
console.log(r2.stdout || r2.stderr)
// 4. 也检查一下Nginx的端口监听状态
console.log('\n4⃣ Nginx端口:')
const r3 = await exec(GZ, 'ss -tlnp | grep nginx')
console.log(r3.stdout || r3.stderr)
// 5. 直接通过新加坡IP测试广州的代理设置
console.log('\n5⃣ 通过广州访问新加坡/images/:')
const SG_IP = '43.156.237.110'
const r4 = await exec(GZ, `curl -s --connect-timeout 5 -w "\\nHTTP:%{http_code}" http://${SG_IP}/images/ -H "Host: guanghulab.com" 2>&1 | tail -3`)
console.log(' http://SG_IP/images/ (Host:guanghulab.com):', (r4.stdout || '').slice(0, 100))
}
main().catch(err => console.error('❌', err))