当前位置 : 主页 > 操作系统 > centos >

Nginx 图形管理工具 Nginxproxymanager

来源:互联网 收集:自由互联 发布时间:2023-02-04
1.简介 正常情况下 Nginx 的管理和日常操作都是通过 Shell 的方式进行,要求操作人员熟悉操作系统环境和 Nginx 配置文件中的各种设置参数。在 Nginx 的配置文件多(大于100个)且变化频繁

1.简介

正常情况下 Nginx 的管理和日常操作都是通过 Shell 的方式进行,要求操作人员熟悉操作系统环境和 Nginx 配置文件中的各种设置参数。在 Nginx  的配置文件多(大于100个)且变化频繁的情况下更是考验操作人员的能力和经验。

随着微服务和 Devops 的技术趋势,简化 web 代理操作并确保设置即时生效的需求越来越多。后续甚至需要考虑集成到产品本身的服务中。目前通过 web 方式管理 Nginx 代理服务器的除商业方案外(如 Openresty 商业版 Edge)开源的方案有基于 kong 微服务的 konga 方案和本文提到的 Nginxproxymanager。

1.1.Konga

基于 kong 微服务网关的图行管理界面。详细的安装及配置可以参考:

kong 微服务网关插件机制及常用指令    ​​https://blog.51cto.com/waringid/5800540​​

kong 微服务网关配置指南    ​https://blog.51cto.com/waringid/5793828​​

使用Kong和Konga管理微服务和API    ​https://blog.51cto.com/waringid/5790671​​

nginx配置指南之一    ​https://blog.51cto.com/waringid/1438852​​

nginx操作指南之二    ​​https://blog.51cto.com/waringid/1441632​​

nginx增加modsecurity模块    ​https://blog.51cto.com/waringid/1629905​​

也谈nginx的安全限制     ​https://blog.51cto.com/waringid/1608666​​

利用Kong 的 request-transformer 插件重写 URL   ​​https://blog.51cto.com/waringid/5803062​​

Linux 系统生产环境配置指南   ​https://blog.51cto.com/waringid/5782872​​​

序号

功能

说明

1

代理组件

  • Nginx
  • Openresty
  • Kong
  • 2

    数据库

    PGSQL

    Kong 不支持 MySQL

    3

    图形管理

    konga

    4

    图形组件

    node

    5

    优势

  • 功能全面
  • 集成多种插件
  • 支持命令行操作
  • 6

    缺点

  • 架构庞大、复杂,安装配置要求高
  • 添加配置较多时,web 展示不直观
  • 需要定制、调整;部分 Nginx 高级功能无法在图形界面调整
  • 1.2.nginxproxymanager

    和 konga 相比配置和操作都比较简单,对于要求不高的应用场景(例如内网环境)可以用来替换 konga

    ​​https://nginxproxymanager.com/​​

    序号

    功能

    说明

    1

    代理组件

  • Nginx
  • Openresty
  • docker
  • 2

    数据库

    MySQL

    3

    图形管理

    nginxproxymanager

    4

    优势

  • 简单、直观
  • 支持自定义语句
  • 5

    缺点

  • 容器环境,需要考虑综合性能
  • 高级功能(限速、限流等)未集成
  • 2.安装 nginxproxymanager 

    2.1.环境配置

    1、参照​​“Linux 生产环境配置指南”​​中的“容器组件更新”部分的内容完成容器组件的配置

    2、安装 docker compose 工具​​https://docs.docker.com/compose/install/​​

    yum install python-pip python-devel libffi-devel openssl-devel gcc libc-* makesudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" \-o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose -v

    Nginx 图形管理工具 Nginxproxymanager_nginxproxymanager

    2.2.增加加容器文件

    version: '3'services: app: image: 'jc21/nginx-proxy-manager:latest' ports: - '80:80' - '81:81' - '443:443' - '8000:8000' environment: TZ: "Asia/Shanghai" 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:10.4' environment: TZ: "Asia/Shanghai" MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql

    1、增加的 8000 端口配置用于测试验证 Nginx 的 TCP 端口转发,例如将 8000 转发到内网的 SSH 端口

    2、TZ:“Asia/Shanghai” 用于配置时区,容器默认的时区为 +0 时区,Nginx 日志的时间记录和北京时间相差8小时

    2.3.启动容器

    docker-compose up -d

    Nginx 图形管理工具 Nginxproxymanager_Nginx 图形管理_02

    Nginx 图形管理工具 Nginxproxymanager_nginxproxymanager_03

    Nginx 图形管理工具 Nginxproxymanager_容器_04

    3.访问及配置

    3.1.登陆

    容器启动后通过 web 打开容器所在的主机地址的81端口访问。默认的用户名和密码是:admin@example.com/changeme

    Nginx 图形管理工具 Nginxproxymanager_反向代理_05

    3.2.反向代理主机

    代理主机中的 Access list 访问策略默认只有公共策略,只有建立了自定义策略后才会显示。主要用于控制页面的访问权限(例如增加用户名密码或是 IP 地址限制等策略)

    Nginx 图形管理工具 Nginxproxymanager_nginxproxymanager_06

    Nginx 图形管理工具 Nginxproxymanager_服务网关_07

    3.3.域名重定向

    Nginx 图形管理工具 Nginxproxymanager_容器_08

    Nginx 图形管理工具 Nginxproxymanager_Nginx 图形管理_09

    3.4.端口转发

    Nginx 图形管理工具 Nginxproxymanager_反向代理_10

    Nginx 图形管理工具 Nginxproxymanager_Nginx 图形管理_11

    3.5.访问控制

    Nginx 图形管理工具 Nginxproxymanager_nginxproxymanager_12

    Nginx 图形管理工具 Nginxproxymanager_反向代理_13

    网友评论