Node.js应用可通过IP端口访问 但Nginx反向代理域名访问返回默认页
Nginx反向代理返回默认页面修复方案
根因说明
请求未匹配到api.domain.com对应的自定义server块,被Nginx转发到优先级更高的默认80服务块,因此返回默认测试页。
修复步骤
- 补全反向代理配置的监听端口
编辑/etc/nginx/conf.d/api1.conf,根据访问场景补充配置:
场景1:HTTP访问
在server块内新增listen 80;配置,完整示例如下:
server { listen 80; server_name api.domain.com; location / { proxy_pass http://localhost:26423/all; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
场景2:HTTPS访问(使用已申请的Let's Encrypt证书)
替换原有配置为以下内容,注意替换为实际的证书路径:
# HTTP自动跳转HTTPS server { listen 80; server_name api.domain.com; return 301 https://$server_name$request_uri; } # HTTPS反向代理配置 server { listen 443 ssl; server_name api.domain.com; ssl_certificate /etc/letsencrypt/live/api.domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/api.domain.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { proxy_pass http://localhost:26423/all; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; 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; proxy_cache_bypass $http_upgrade; } }
- 验证配置合法性
执行命令:nginx -t,返回test is successful即代表配置语法无误。 - 重载Nginx配置生效
执行命令:systemctl reload nginx - 排查残留问题
若修改后仍返回默认页,先确认域名解析指向当前服务器公网IP,再清理浏览器缓存后重试,也可通过curl -v http://api.domain.com命令查看请求的实际走向定位问题。
内容的提问来源于stack exchange,提问作者KingDark
相关产品推荐
相关产品推荐

