张宁的个人博客

莫道君行早,更有早行人。

使用AMH搭建Alist实现Obsidian同步 | 搭建与域名设置

zgc261 张宁的个人博客/🗓️ 发布时间:2026-05-06/📁 分类:闲扯/🔥 热度:27

记录搭建过程,用于后期重建使用

一、搭建Alist

1.在AMH中安装Alist插件

屏幕截图 2026-05-20 112854.png

2.Alist增加本地驱动

在“Alist管理”中的“存储”中可以添加本机存储等驱动,具体方法可以参考官方文档。https://alistgo.com/zh/guide/ 

屏幕截图 2026-05-20 113026.png

如果不需要设置域名,则可以使用IP地址的方式进行访问了。

屏幕截图 2026-05-20 112915.png

二、设置域名

1.在LNMP环境下增加虚拟主机

①设置域名解析

首先,去你的域名服务商(像阿里云、腾讯云)控制台,添加一条 A 记录,把你想用的那个二级域名(比如 alist.yourdomain.com)指向你服务器的公网 IP 地址。建议等解析生效了再进行下一步。

②在LNMP环境下增加虚拟主机

「主机标识名」: 填一个英文标识,比如 alist。

「绑定域名」: 填上你解析好的那个域名,比如 alist.yourdomain.com。

网站根目录: AMH 会自动生成,保持默认就行。这个目录不是给 Alist 用的,但必须得有,只是用来设置域名转发。

屏幕截图 2026-05-28 093139.png

③设置启用SSL

可以直接使用AMH自带的方式“创建AMSSI网站证书”,使用一键自动配置应用即可。

屏幕截图 2026-05-28 094823.png

④配置 Nginx 反向代理

要把 Alist 从 IP 访问改成用域名访问,核心思路是用 Nginx 做一个反向代理,把你域名上的请求转发给 Alist 程序。

实现此操作,需要设置 "域名.conf" 文件(如果设置了SSL,同时还需要设置 "域名-https.conf" 文件),此文件一般存放在如下目录:

1.需要找到你的环境名称:如果你在面板中为网站创建了名为 lnmp01 的环境,那么路径就是 /home/wwwroot/lnmp01/vhost/。
2.对于AMH 6.0及以上版本,也可能在这里:/usr/local/nginx-generic-1.20/conf/vhost/

配置成如下:

server
{
    listen 443 ssl http2 ; #listen end
    server_name alist.xxx.com; #server_name end
    index index.html index.htm index.php; #index end
    set $subdomain '';
    root  /home/wwwroot/lnmp01/domain/alist/web$subdomain;
    include /home/wwwroot/lnmp01/rewrite/alist.conf; #rewrite end
    # ===== 新增:让 Let's Encrypt 验证目录走本地文件,不代理 =====
    location ^~ /.well-known/ {
        root /home/wwwroot/lnmp01/domain/alist/web;
        allow all;
    }
    # ===== 新增结束 =====
    # ===== 反向代理到 Alist =====
    location / {
        proxy_pass http://127.0.0.100:5244/;
        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;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    # ===== 反向代理结束 =====
    #error_page
    error_page 400 /ErrorPages/400.html;
    error_page 403 /ErrorPages/403.html;
    error_page 404 /ErrorPages/404.html;
    error_page 502 /ErrorPages/502.html;
    location ~ /ErrorPages/(400|401|403|404|405|502|503)\.html$ 
    {
        root /home/wwwroot/lnmp01/domain/alist/web;
    }
    # 注释掉 PHP 处理(因为已经用反向代理,不需要 PHP)
    #location ~ .*\.php$
    #{
    #    fastcgi_pass  unix:/tmp/php-cgi-lnmp01-alist.sock;
    #    fastcgi_index index.php;
    #    include fcgi.conf;
    #    fastcgi_param DOCUMENT_ROOT  /home/wwwroot/lnmp01/domain/alist/web$subdomain;
    #    fastcgi_param SCRIPT_FILENAME  /home/wwwroot/lnmp01/domain/alist/web$subdomain$fastcgi_script_name;
    #}
    #location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$
    #{
    #    expires      30d;
    #}
    
    #location ~ .*\.(js|css)$
    #{
    #    expires      12h;
    #}
    access_log off; #access_log end
    error_log /dev/null; #error_log end
 ssl_certificate_key  /home/wwwroot/lnmp01/etc/alist-lessl-ssl/alist-lessl.key;
 ssl_certificate  /home/wwwroot/lnmp01/etc/alist-lessl-ssl/alist-lessl.crt;
}

保存配置后,记得在 AMH 面板重启一下 Nginx 让配置生效。

注意屏蔽的location规则,这些规则会拦截 .js、.css 等文件请求,并尝试从本地 root 目录(/home/wwwroot/lnmp01/domain/alist/web)读取,而不是转发给 Alist 后端。因为本地目录下没有这些文件,所以返回 404 → 页面空白。

⑤ 配置 Alist 的站点 URL

为了让 Alist 内部生成的链接都使用你的新域名,还需要修改 Alist 的配置文件。

编辑配置文件: Alist 的配置文件一般在 data/config.json。

修改 site_url: 找到 site_url 这一项,把它改成 "http://alist.yourdomain.com"(如果配了 HTTPS 就用 https)。

如果你在 AMH 里给这个站点配置了 SSL 证书,那 site_url 也记得对应改成 https:// 的。

{
  "force": false,
  "site_url": "https://alist.xxx.com",
  "cdn": "",
  "jwt_secret": "-----------",
  "token_expires_in": 48,
  "database": {
    "type": "sqlite3",
    "host": "",
    "port": 0,
    "user": "",
    "password": "",
    "name": "",
    "db_file": "/home/usrdata/alist/data.db",
    "table_prefix": "x_",
    "ssl_mode": "",
    "dsn": ""
  },
  "meilisearch": {
    "host": "http://localhost:7700",
    "api_key": "",
    "index_prefix": ""
  },
  "scheme": {
    "address": "127.0.0.100",
    "http_port": 5244,
    "https_port": -1,
    "force_https": false,
    "cert_file": "",
    "key_file": "",
    "unix_file": "",
    "unix_file_perm": "",
    "enable_h2c": false
  },
  "temp_dir": "/home/usrdata/alist/temp",
  "bleve_dir": "/home/usrdata/alist/bleve",
  "dist_dir": "",
  "log": {
    "enable": true,
    "name": "/home/usrdata/alist/log/log.log",
    "max_size": 50,
    "max_backups": 30,
    "max_age": 28,
    "compress": false
  },
  "delayed_start": 0,
  "max_connections": 0,
  "max_concurrency": 64,
  "tls_insecure_skip_verify": false,
  "tasks": {
    "download": {
      "workers": 5,
      "max_retry": 1,
      "task_persistant": false
    },
    "transfer": {
      "workers": 5,
      "max_retry": 2,
      "task_persistant": false
    },
    "upload": {
      "workers": 5,
      "max_retry": 0,
      "task_persistant": false
    },
    "copy": {
      "workers": 5,
      "max_retry": 2,
      "task_persistant": false
    },
    "decompress": {
      "workers": 5,
      "max_retry": 2,
      "task_persistant": false
    },
    "decompress_upload": {
      "workers": 5,
      "max_retry": 2,
      "task_persistant": false
    },
    "s3_transition": {
      "workers": 5,
      "max_retry": 2,
      "task_persistant": false
    },
    "allow_retry_canceled": false
  },
  "cors": {
    "allow_origins": [
      "*"
    ],
    "allow_methods": [
      "*"
    ],
    "allow_headers": [
      "*"
    ]
  },
  "s3": {
    "enable": false,
    "port": 5246,
    "ssl": false
  },
  "ftp": {
    "enable": false,
    "listen": ":5221",
    "find_pasv_port_attempts": 50,
    "active_transfer_port_non_20": false,
    "idle_timeout": 900,
    "connection_timeout": 30,
    "disable_active_mode": false,
    "default_transfer_binary": false,
    "enable_active_conn_ip_check": true,
    "enable_pasv_conn_ip_check": true
  },
  "sftp": {
    "enable": false,
    "listen": ":5222"
  },
  "last_launched_version": "v3.59.0"
}

修改配置文件后,必须重启 Alist 服务,才能使修改生效。

现在设置完成,可以使用域名访问了。

文章关键词
AHM
Alist
Obsidian
同步
发表评论