





















请注意,本文编写于 718 天前,最后修改于 718 天前,其中某些信息可能已经过时。
这篇文章介绍了如何安装 Nginx Proxy Manager,一款基于 Nginx 的反向代理管理工具,以及在使用过程中可能遇到的问题和解决方法。文章提供了安装和配置 Nginx Proxy Manager 的简要步骤,并详细介绍了如何避免常见问题,例如无法反代某些网站、SSL 证书配置错误等。通过本文提供的避坑指南,你可以更轻松地使用 Nginx Proxy Manager,享受更好的反向代理体验。
Docker安装
docker pull jc21/nginx-proxy-manager:latest
docker run -d -p 80:80 -p 81:81 -p 443:443 --restart=always -v ~/data:/data -v ~/letsencrypt:/etc/letsencrypt jc21/nginx-proxy-manager:latest
Docker Compose安装Nginx Proxy Manager 是通过 Docker 部署的,因此首先需要在你的服务器上安装 Docker 和 Docker Compose
对于大多数 Linux 发行版,可以使用以下命令安装 Docker:
curl -fsSL https://get.docker.com > get-docker.sh sudo sh get-docker.sh sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker $USER
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
创建一个新目录来存放 Nginx Proxy Manager 的配置文件和数据:
mkdir nginx-proxy-manager cd nginx-proxy-manager
在该目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:
version: '3' services: app: image: jc21/nginx-proxy-manager:latest restart: always ports: - "80:80" - "81:81" - "443:443" environment: - DB_MYSQL_HOST=db - DB_MYSQL_PORT=3306 - DB_MYSQL_USER=npm - DB_MYSQL_PASSWORD=npm - DB_MYSQL_NAME=npm volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt db: image: yobasystems/alpine-mariadb:latest restart: always environment: - MYSQL_ROOT_PASSWORD=npm - MYSQL_DATABASE=npm - MYSQL_USER=npm - MYSQL_PASSWORD=npm volumes: - ./data/mysql:/var/lib/mysql
在包含 docker-compose.yml 文件的目录中,运行以下命令启动 Nginx Proxy Manager 和数据库容器:
等待几分钟,让容器启动并初始化。然后在浏览器中访问服务器的 IP 地址或域名,端口为 81。例如:http://your-server-ip:81。默认的管理员用户名和密码分别为 admin@example.com 和 changeme。首次登录后,请确保更改默认密码。
确保你反代的网站可以正常访问。在浏览器或使用 curl 命令检查目标网站是否正常运行。
登录到 Nginx Proxy Manager 管理界面,然后依次点击 "Proxy Hosts" > "Add Proxy Host"。确保以下设置正确:
如果问题仍然存在,可以查看 Nginx Proxy Manager 生成的 Nginx 配置文件。在你创建的 "nginx-proxy-manager" 目录中,找到 "data/nginx/proxy_host" 目录。在这个目录下,找到与你的域名相关的配置文件(例如,2.conf),检查其中的反向代理设置是否正确。
在某些情况下,重启 Nginx Proxy Manager 可能有助于解决问题。在包含 docker-compose.yml 文件的目录中,运行以下命令:
docker-compose down docker-compose up -d
尝试修改 Nginx Proxy Manager 生成的配置文件,以将原始主机头传递给目标服务器。在 2.conf 文件中找到以下行:
include conf.d/include/proxy.conf;
然后将其替换为以下内容:
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Port $server_port; proxy_pass $forward_scheme://$server:$port;
保存更改后,需要重启 Nginx Proxy Manager 以使更改生效。
确保没有任何网络连接问题或防火墙设置阻止了请求。检查服务器上的防火墙规则,确保允许通过 80、443 和 81 端口的传入连接。同时,确认目标服务器的防火墙设置允许从 Nginx Proxy Manager 发起的连接。
使用ubuntu默认的ufw防火墙来开放端口
sudo ufw allow 80/tcp sudo ufw allow 81/tcp sudo ufw allow 443/tcp
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。