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

咨询如何将域名指向Docker部署的Next.js+Nginx服务

域名指向Docker容器服务的完整配置指南

已完成的前置操作

  • 路由器80端口已转发至Docker服务器IP 192.168.1.101
  • Docker容器运行状态正常,端口映射情况:
    CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS          PORTS                                      NAMES
    cabb3c8fe03c   nextjs-docker-pm2-nginx-master_nginx    "/docker-entrypoint.…"   16 minutes ago   Up 16 minutes   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nextjs-docker-pm2-nginx-master-nginx-1
    ed27e0fd2f24   nextjs-docker-pm2-nginx-master_nextjs   "docker-entrypoint.s…"   16 minutes ago   Up 16 minutes   3000/tcp                                   nextjs-docker-pm2-nginx-master-nextjs-1
    

剩余配置步骤

1. 配置域名解析

  • 公网正式域名:将域名的A记录指向你的服务器公网IP(注意不是内网192.168.1.101)
  • 本地测试域名:在本地hosts文件添加映射:
    192.168.1.101 local.DOMAIN.com.au
    

2. 修正Nginx配置中的域名

编辑Nginx配置文件default.conf,将所有local.DOMAIN.com.au替换为你的实际域名:

# Cache zone
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=7d use_temp_path=off;

upstream nextjs {
  server nextjs:3000;
}


server {
    listen 80;

    server_name your-domain.com.au; # 替换为实际域名
    server_tokens off;

    gzip on;
    gzip_proxied any;
    gzip_comp_level 4;
    gzip_types text/css application/javascript image/svg+xml;

    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;


    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    # BUILT ASSETS (E.G. JS BUNDLES)
    # Browser cache - max cache headers from Next.js as build id in url
    # Server cache - valid forever (cleared after cache "inactive" period)
    location /_next/static {
      proxy_cache STATIC;
      proxy_pass http://nextjs;
    }

    # STATIC ASSETS (E.G. IMAGES)
    # Browser cache - "no-cache" headers from Next.js as no build id in url
    # Server cache - refresh regularly in case of changes
    location /static {
      proxy_cache STATIC;
      proxy_ignore_headers Cache-Control;
      proxy_cache_valid 60m;
      proxy_pass http://nextjs;
    }

    # DYNAMIC ASSETS - NO CACHE
    location / {
      proxy_pass http://nextjs;
      proxy_buffering off;
      proxy_set_header X-Real-IP $remote_addr;
    }
}

server {
    listen 443 default_server ssl http2;

    server_name your-domain.com.au; # 替换为实际域名

    ssl_certificate /etc/nginx/ssl/live/your-domain.com.au/fullchain.pem; # 替换为实际域名路径
    ssl_certificate_key /etc/nginx/ssl/live/your-domain.com.au/privkey.pem; # 替换为实际域名路径
    
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    # BUILT ASSETS (E.G. JS BUNDLES)
    # Browser cache - max cache headers from Next.js as build id in url
    # Server cache - valid forever (cleared after cache "inactive" period)
    location /_next/static {
      proxy_cache STATIC;
      proxy_pass http://nextjs;
    }

    # STATIC ASSETS (E.G. IMAGES)
    # Browser cache - "no-cache" headers from Next.js as no build id in url
    # Server cache - refresh regularly in case of changes
    location /static {
      proxy_cache STATIC;
      proxy_ignore_headers Cache-Control;
      proxy_cache_valid 60m;
      proxy_pass http://nextjs;
    }

    # DYNAMIC ASSETS - NO CACHE
    location / {
      proxy_pass http://nextjs;
      proxy_buffering off;
      proxy_set_header X-Real-IP $remote_addr;
    }
}

3. 验证Docker服务网络连通性

Docker Compose默认会为所有服务创建同一网络,upstream nextjs { server nextjs:3000; }的配置可直接解析到Next.js容器。若需验证,可进入Nginx容器测试:

docker exec -it nextjs-docker-pm2-nginx-master-nginx-1 ping nextjs

4. 生成SSL证书(正式域名)

运行Certbot命令获取证书(替换为你的域名):

docker-compose run --rm certbot certonly --webroot -w /var/www/certbot -d your-domain.com.au

5. 重启Docker服务

修改配置后,重启Nginx容器生效:

docker-compose up -d --build nginx

6. 验证访问

  • 本地测试:访问http://local.DOMAIN.com.au(需配置hosts)
  • 公网测试:访问https://your-domain.com.au(确保服务器防火墙开放80、443端口)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:55:17