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

如何在DigitalOcean Droplet上配置Appwrite、Ghost CMS及SvelteKit的域名访问

多站点配置步骤(Appwrite + Ghost + SvelteKit)

前提准备

先在域名服务商后台添加以下DNS记录,全部指向你的Droplet公网IP:

  • A记录:domain.com → Droplet IP
  • A记录:app-api.domain.com → Droplet IP
  • A记录:blog-api.domain.com → Droplet IP

等待DNS生效(通常10-30分钟),可用nslookup domain.com验证。


1. 迁移Appwrite到app-api.domain.com

DigitalOcean一键安装的Appwrite默认占用主机80端口,需先调整端口和域名:

  1. 进入Appwrite安装目录(默认在/root/appwrite):
    cd /root/appwrite
    
  2. 停止Appwrite服务:
    docker-compose down
    
  3. 修改docker-compose.yml,将端口映射从80:80改为8080:80:
    nano docker-compose.yml
    # 找到类似 ports: - "80:80" 的行,改成 - "8080:80"
    
  4. 修改.env文件中的域名配置:
    nano .env
    # 修改以下两行:
    _APP_DOMAIN=app-api.domain.com
    _APP_HOSTNAME=app-api.domain.com
    
  5. 重启Appwrite:
    docker-compose up -d
    
  6. 创建Appwrite的Nginx虚拟主机配置:
    nano /etc/nginx/sites-available/app-api.conf
    
    粘贴以下内容:
    server {
        listen 80;
        server_name app-api.domain.com;
    
        location / {
            proxy_pass http://localhost:8080;
            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;
        }
    }
    
  7. 启用配置并重启Nginx:
    ln -s /etc/nginx/sites-available/app-api.conf /etc/nginx/sites-enabled/
    nginx -t && systemctl restart nginx
    

2. 安装Ghost CMS到blog-api.domain.com

用Ghost CLI快速安装,会自动配置Nginx和SSL:

  1. 安装Node.js 18.x(Ghost官方推荐版本):
    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  2. 安装Ghost CLI:
    npm install ghost-cli@latest -g
    
  3. 创建Ghost安装目录并设置权限:
    mkdir -p /var/www/ghost
    chown $USER:$USER /var/www/ghost
    
  4. 进入目录开始安装:
    cd /var/www/ghost
    ghost install
    
    安装过程中按提示输入:
    • 域名:blog-api.domain.com
    • SSH端口:22
    • 配置Nginx:Yes
    • 配置SSL:Yes(自动用Let's Encrypt)
    • 配置Systemd:Yes
    • 启动Ghost:Yes

3. 配置SvelteKit作为默认站点(domain.com)

  1. 部署SvelteKit应用到服务器:
    • 方式一:本地构建后上传
      在本地项目中执行npm run build,然后用scp上传构建产物:
      scp -r build/* root@[你的DropletIP]:/var/www/sveltekit
      
    • 方式二:服务器拉取代码构建
      cd /var/www
      git clone [你的SvelteKit仓库地址] sveltekit
      cd sveltekit
      npm install
      npm run build
      
  2. 创建SvelteKit的Nginx虚拟主机配置:
    nano /etc/nginx/sites-available/sveltekit.conf
    
    粘贴以下内容:
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name domain.com www.domain.com;
    
        root /var/www/sveltekit/build;
        index index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  3. 启用配置并重启Nginx:
    ln -s /etc/nginx/sites-available/sveltekit.conf /etc/nginx/sites-enabled/
    nginx -t && systemctl restart nginx
    

最后:配置HTTPS(可选但推荐)

用Certbot给所有站点申请免费SSL证书:

  1. 安装Certbot:
    apt install certbot python3-certbot-nginx -y
    
  2. 分别给每个站点申请证书:
    certbot --nginx -d domain.com -d www.domain.com
    certbot --nginx -d app-api.domain.com
    certbot --nginx -d blog-api.domain.com
    
    按提示选择自动跳转HTTP到HTTPS即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:55:50