You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Nginx可通过IP访问网站但域名无法访问,求排查解决

Nginx域名无法访问问题排查与修复

配置中的核心问题

  • proxy_pass与静态文件配置冲突:你的location块同时配置了proxy_pass(转发到后端服务)和root/index(静态文件路径),这两个配置逻辑互斥,会导致Nginx处理请求时逻辑混乱,必须移除root和index项。
  • HTTP端口未处理:当前配置同时监听80和443端口,但80端口没有任何响应规则,用户访问http://域名时会得到无效响应,误以为域名无法访问。
  • SSL配置潜在风险:需确认证书文件路径正确、文件权限为Nginx可读(可执行sudo chmod 644 /home/ubuntu/mypro-be.compa.app.crt /home/ubuntu/mypro-be.compa.app.key),且证书是对应域名的有效证书。

必做排查步骤

  1. 验证配置语法:执行sudo nginx -t,如果输出test is successful则配置语法没问题,否则根据提示修复错误。
  2. 重载Nginx配置:执行sudo systemctl reload nginx,让修改后的配置生效。
  3. 检查端口开放情况:确认服务器防火墙/云安全组已开放80、443端口,可通过sudo ufw status(Ubuntu)查看,未开放则执行sudo ufw allow 80/tcp和sudo ufw allow 443/tcp。
  4. 确认解析生效:在本地终端执行nslookup mypro-be.compa.app,检查返回的IP是否与服务器公网IP一致,若不一致等待解析生效(通常10分钟到几小时)。
  5. 清除本地DNS缓存:Windows执行ipconfig /flushdns,Linux执行sudo systemd-resolve --flush-caches,Mac执行sudo dscacheutil -flushcache。

修改后的有效配置示例

server {
    listen 80;
    listen [::]:80;
    server_name mypro-be.compa.app;

    # 强制HTTP跳转至HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name mypro-be.compa.app;

    ssl_certificate /home/ubuntu/mypro-be.compa.app.crt;
    ssl_certificate_key /home/ubuntu/mypro-be.compa.app.key;

    # 可选:增强SSL安全性的配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

配置修改说明

  • 拆分HTTP和HTTPS独立配置块,HTTP块专门处理跳转,避免用户访问http协议时无响应。
  • 移除location块中冲突的静态文件配置,确保请求正确转发到后端3000端口服务。
  • 可选添加SSL优化配置,提升站点的加密安全等级。

内容的提问来源于stack exchange,提问作者RATCHANON KHONG-ASA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 19:02:52