NginxProxyManager 是一款 docker 安装的 nginx 代理管理工具,安装方便,使用简单,结合 web 界面,非常适合没有 nginx 基础的小伙伴,可以轻松地搭建 nginx 反向代理服务器。NginxProxyManager 还支持一键申请 Let’s Encrypt 证书,并且自动续期,非常实用。
Docker Engine 的安装
因为 NginxProxyManager 要借助 docker 使用,所以要先安装 docker engine。服务器的环境是 Debian,如果你使用的是其他 Linux 系统,会有所不同。过程来自 docker 官网。
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update # Install the latest docker packages sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
NginxProxyManager 的安装
docker 存储在 /home/docker/
文件夹下,新建 nginxproxymanager 文件夹,在该文件夹下创建一个 docker-compose.yml
文件,内容如下,这是最简单的配置,使用的是 sqlite 数据库。配置文件来自官网。
services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP environment: # Uncomment this if you want to change the location of # the SQLite DB file within the container DB_SQLITE_FILE: "/data/database.sqlite" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
运行 docker compose up -d
启动,默认用户名是 admin@example.com,默认密码是 changeme,浏览器打开 http://ip:81
即可访问 NginxProxyManager 的 Web 界面了。
NginxProxyManager 的使用
出现 ERR_CONNECTION_REFUSED 的解决办法
如果 url 比较长,在访问的适合会出现 ERR_CONNECTION_REFUSED 的情况,解决方法如下,进入 Edit Proxy Host –> Advanced,加入下面两行配置:
client_header_buffer_size 512k; large_client_header_buffers 4 512k;
错误日志中出现 an upstream response is buffered to a temporary file 的解决办法
在查看错误日志的时候,会发现出现 an upstream response is buffered to a temporary file 的错误,并且还不少,解决方法如下,进入 Edit Proxy Host –> Advanced,加入下面配置:
proxy_buffering off;
在 Details 设置里面,有一个 cache assets 的选项,虽然关闭,但是还是会出现被缓存的情况。