跳到主要内容

nginx-proxy-manager

nginx-proxy-manager

写在前面

个人不喜欢这种配置方式,直接在nginx.conf里配置就好,也方便。

image-20240810065200117

image-20240810065243745

简介

nginx-proxy-manager是什么,如何使用?

Nginx Proxy Manager 是一个基于 Nginx 的图形化反向代理管理工具。它提供了一个简单易用的 Web 界面,帮助用户轻松配置和管理反向代理、SSL证书、访问控制等功能,而不需要手工编辑 Nginx 配置文件。

主要功能

  1. 反向代理:可以将外部请求代理到内部服务。
  2. SSL 证书管理:支持 LetsEncrypt 自动化获取和续期 SSL 证书。
  3. 访问控制:可以设置访问权限控制。
  4. 重定向:支持 301 和 302 重定向。
  5. HTTP 基本认证:可以为代理设置基础的 HTTP 认证。

如何使用 Nginx Proxy Manager?

1. 准备环境

确保你已经安装了 Docker 和 Docker Compose。如果没有安装,可以参考官方文档进行安装:

2. 创建 Docker Compose 文件

在你喜欢的目录中创建一个 docker-compose.yml 文件,并添加以下内容:

mkdir nginx-proxy-manager
cd nginx-proxy-manager/

!

cat > /root/nginx-proxy-manager/docker-compose.yml <<EOF
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
# HTTP 端口
- '80:80'
# HTTPS 端口
- '443:443'
# 管理界面端口
- '81:81'
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: 'jc21/mariadb-aria:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
EOF

自己配置

cat > /root/nginx-proxy-manager/docker-compose.yml << EOF
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
# HTTP 端口
- '9080:80'
# HTTPS 端口
- '9443:443'
# 管理界面端口
- '9081:81'
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: 'jc21/mariadb-aria:latest'
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
EOF

3. 启动服务

docker-compose.yml 文件所在的目录中,运行以下命令来启动 Nginx Proxy Manager:

docker-compose up -d

这将启动两个容器:一个用于 Nginx Proxy Manager 应用,另一个用于 MariaDB 数据库。

image-20240729105004076

4. 配置 Nginx Proxy Manager

  1. 打开浏览器,访问:http://你的服务器IP:81
  2. 使用默认的管理员账号和密码登录:
    • 默认账户:admin@example.com
    • 默认密码:changeme
  3. 登录后,你可以在用户设置中更改默认的电子邮件和密码。

http://192.168.1.100:9081/login

image-20240810064933948

image-20240729105128253

image-20240729105208107

image-20240810064952718

5. 添加代理主机

  1. 在管理界面中,点击 “Proxy Hosts”。
  2. 点击 “Add Proxy Host” 按钮。
  3. 填写域名、Forward Hostname/IP 以及 Forward Port 等信息。
  4. 选择需要的 SSL 选项(例如,可以自动申请 LetsEncrypt 证书)。
  5. 保存配置。

image-20240810065006189

此时,编辑nginx.conf文件:

vim /etc/nginx/nginx.conf

nginx -s reload

验证:

6. 验证

配置完成后,你可以通过配置的域名访问内部服务。Nginx Proxy Manager 会自动处理请求的代理、SSL 证书管理等工作。

总结

Nginx Proxy Manager 是一个强大且易用的反向代理管理工具,它使得配置和管理反向代理变得更加简单和直观。通过 Docker 部署,你可以在几分钟内启动并运行这个工具,并通过它的 Web 界面进行进一步的配置和管理。