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

Docker环境下Nginx server_name指定域名无法访问后端服务

解决步骤
  • 修改宿主机hosts文件
    本地测试环境下,需将自定义域名映射到本地IP。找到宿主机的hosts文件:

    • Windows:C:\Windows\System32\drivers\etc\hosts
    • Linux/macOS:/etc/hosts
      添加一行映射规则:
    127.0.0.1 my-domain.xyz
    

    保存后在终端执行ping my-domain.xyz,确认域名能解析到127.0.0.1。

  • 确保后端服务监听0.0.0.0
    检查api后端的启动配置,必须让服务监听0.0.0.0:4000而非127.0.0.1:4000。若仅监听127.0.0.1,Docker容器外部(包括Nginx容器)将无法访问该服务。以Node.js为例,启动代码需调整为:

    app.listen(4000, '0.0.0.0', () => {
      console.log('服务运行在0.0.0.0:4000');
    });
    
  • 验证Nginx配置并重启服务

    1. 进入Nginx容器:
      docker exec -it nginx sh
      
    2. 检查配置文件合法性:
      nginx -t
      
      输出test is successful则配置正常,否则根据提示修正错误。
    3. 重启Nginx使配置生效:
      nginx -s reload
      
  • 检查宿主机80端口占用
    确认宿主机80端口未被其他服务(如Apache、IIS或其他Nginx实例)占用:

    • Windows:netstat -ano | findstr ":80"
    • Linux/macOS:lsof -i :80
      若有占用,停止对应服务即可(优先保留默认80端口以符合域名访问习惯)。

内容的提问来源于stack exchange,提问作者William Le

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:32:35