如何在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端口,需先调整端口和域名:
- 进入Appwrite安装目录(默认在
/root/appwrite):cd /root/appwrite - 停止Appwrite服务:
docker-compose down - 修改
docker-compose.yml,将端口映射从80:80改为8080:80:nano docker-compose.yml # 找到类似 ports: - "80:80" 的行,改成 - "8080:80" - 修改
.env文件中的域名配置:nano .env # 修改以下两行: _APP_DOMAIN=app-api.domain.com _APP_HOSTNAME=app-api.domain.com - 重启Appwrite:
docker-compose up -d - 创建Appwrite的Nginx虚拟主机配置:
粘贴以下内容:nano /etc/nginx/sites-available/app-api.confserver { 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; } } - 启用配置并重启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:
- 安装Node.js 18.x(Ghost官方推荐版本):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs - 安装Ghost CLI:
npm install ghost-cli@latest -g - 创建Ghost安装目录并设置权限:
mkdir -p /var/www/ghost chown $USER:$USER /var/www/ghost - 进入目录开始安装:
安装过程中按提示输入: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)
- 部署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
- 方式一:本地构建后上传
- 创建SvelteKit的Nginx虚拟主机配置:
粘贴以下内容:nano /etc/nginx/sites-available/sveltekit.confserver { 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; } } - 启用配置并重启Nginx:
ln -s /etc/nginx/sites-available/sveltekit.conf /etc/nginx/sites-enabled/ nginx -t && systemctl restart nginx
最后:配置HTTPS(可选但推荐)
用Certbot给所有站点申请免费SSL证书:
- 安装Certbot:
apt install certbot python3-certbot-nginx -y - 分别给每个站点申请证书:
按提示选择自动跳转HTTP到HTTPS即可。certbot --nginx -d domain.com -d www.domain.com certbot --nginx -d app-api.domain.com certbot --nginx -d blog-api.domain.com
内容的提问来源于stack exchange,提问作者Nqobizitha Mlilo
相关产品推荐
相关产品推荐

