NginxProxyManager 安装使用教程

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;

解决 nginxproxymanager url 太长导致的 ERR_CONNECTION_REFUSED 问题。

错误日志中出现 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 的选项,虽然关闭,但是还是会出现被缓存的情况。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>