系统环境:Alpine vir 3.18.2 x86_64 Alpine Linux安装

已安装docker及compose插件 ALpine Linux中安装Docker

作者项目页:Nginx Proxy Manager (jc21.com)

Github地址:GitHub - NginxProxyManager/nginx-proxy-manager

推荐使用Docker Compose方式部署

创建文件夹用于保存附件和数据库,以/opt/halo为例

创建配置文件

在目录内创建docker-compose.yaml文件。

version: '3.8'
services:
  npm:
    container_name: npm
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    environment:
      TZ: Asia/Chongqing
    network_mode: host
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

网络模式推荐使用host,新增端口转发等配置后无需修改配置文件的端口映射。若仅使用网页反向代理,则可以只映射80、443及管理页面端口81。

启动npm容器

docker compose up -d

用浏览器访问 http://你的ip:81/ 即可进入 npm管理页面,默认帐号密码admin@example.com,changeme,首次启动会要求修改帐号和密码。

迁移数据

复制配置目录后,如果配置了SSL自动证书,根据certbot的文档,证书文件为软连接,复制后软连接会被替换成实体文件,应删除软连接对应的文件,然后重新创建软连接。

操作步骤,请将以下的xxx.com修改为你的域名

cd /npm/letsencrypt/
chmod -R 0755 live/
chmod -R 0755 renewal/
chmod -R 0755 archive/
cd live/xxx.com/
rm ./*.*
ln -s ../../archive/xxx.com/cert1.pem .    #文件序号请对应archive内最新的一个,下同
ln -s ../../archive/xxx.com/chain1.pem .
ln -s ../../archive/xxx.com/fullchain1.pem .
ln -s ../../archive/xxx.com/privkey1.pem .
mv cert1.pem cert.pem
mv chain1.pem chain.pem
mv fullchain1.pem fullchain.pem
mv privkey1.pem privkey.pem

应用提示

在用于群晖的反向代理时,应在advanced中额外加上以下配置,这样在处理文件上传的场景中,就不会因超时、文件太大,缓存太大等各种意外原因失败了。缺点是需要网络连接比较稳定。

client_max_body_size 0;
proxy_request_buffering off;