一、Nginx-Proxy-Manager简介
Nginx-Proxy-Manager 是一个基于 Web 的 Nginx 服务器管理工具,它允许用户通过浏览器界面轻松地管理和监控 Nginx 服务器。通过 Nginx-Proxy-Manager,可以获得受信任的 SSL 证书,并通过单独的配置、自定义和入侵保护来管理多个代理。用户还可以查看服务器的状态、配置、日志以及流量等信息,还可以对服务器进行一键重启、停止等操作。
二、功能
实时监控:Nginx-Proxy-Manager 可以实时监控服务器的状态和性能,包括 CPU 使用率、内存使用情况、网络流量等。
配置文件管理:用户可以在 Nginx-Proxy-Manager 中编辑 Nginx 的配置文件,支持语法高亮和自动补全功能。
可视化界面:Nginx-Proxy-Manager 提供了一个直观的 Web 界面,用户可以通过浏览器轻松地查看和管理 Nginx 服务器。
一键重启/停止:用户可以在 Nginx-Proxy-Manager 中一键重启或停止 Nginx 服务器,无需手动操作命令行。
日志管理:Nginx-Proxy-Manager 可以查看和分析 Nginx 的访问日志、错误日志等,帮助用户诊断问题。
三、安装
3.1 系统要求
Ubuntu/Debian: 16.04+
CentOS/RHEL: 7.0+
Debian/Ubuntu: Python 3.6+, Django 2.0+, Nginx 1.10+, PostgreSQL 9.6+
3.2 bash安装步骤
3.2.1 安装依赖:
sudo apt-get update sudo apt-get install -y python3 python3-pip postgresql libpq-dev g++ make build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev wget curl unzip
3.2.2 克隆项目:
git clone https://github.com/francescoferrari/nginx_proxy_manager.git cd nginx_proxy_manager
3.2.3 初始化数据库:
python manage.py db init python manage.py db migrate python manage.py db upgrade
3.2.4 创建超级用户:
python manage.py createsuperuser --username=admin --email=admin@example.com --password=mysecretpassword
3.2.5 安装并配置 Django:
python manage.py collectstatic --noinput --settings=settings_local python manage.py runserver 0.0.0.0:81 &> /dev/null & # 在后台运行 Django,便于调试时访问管理界面
3.2.6 配置 Nginx:
编辑 /etc/nginx/sites-available/default,将 proxy_set_header X-Forwarded-Host $host; 这一行注释掉,然后重启 Nginx:
sudo service nginx restart # 或者使用 systemctl restart nginx
3.3 Docker安装步骤
在安装nginx-proxy-manager前需要提前安装好docker和docker-compose并保证80 81 443端口未被占用
docker 安装文档 https://docs.docker.com/install/ docker-compose 安装文档 https://docs.docker.com/compose/install/
3.3.1 在服务器中创nginx-proxy-manager目录
mkdir nginx-proxy-manager
3.3.2 进入到nginx-proxy-manager目录中
cd nginx-proxy-manager
3.3.3 在nginx-proxy-manager目录中创建docker-compose.yaml文件
nano docker-compose.yaml
nginx-proxy-manager/docker-compose.yaml内容为:
version: "3" 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: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql
3.3.4 启动nginx-proxy-manager
docker-compose up -d
3.4 默认用户名和密码
Email: admin@example.com Password: changeme
四、使用
4.1 访问管理界面
在浏览器中输入 https://your_server_ip:81,使用创建的超级用户账号或默认账号登录
4.2 添加代理主机
4.3 申请证书
注意:这样申请证书比较麻烦,需要一个一个的去申请,那么可以通过申请通配符证书(泛域名证书)来解决这个问题
4.4 申请通配符证书
4.5 自定义页面
NPM还支持自定义服务器的默认Web页面。点击“设置”->“默认站点”并选择“编辑”。您可以选择“404 Page”、“重定向”或“自定义页面”