nginxWebUI使用教程

4,681 阅读10分钟

nginx作为一个高性能的http和反向代理web服务器,相信大家都不会陌生,但是其复杂的配置项和命令行却常常让人大呼难受,而且因为一般项目和nginx都运行在linux环境中,每次访问都需要远程连过去,在一行行命令间进行操作,如果没有linux命令的基础,使用起来更是难度大增。

nginxWebUI作为一款优秀的nginx图形化管理工具,部署此项目后,可以在web端对nginx进行管理,配置nginx再也不用上网各种搜索配置代码, 再也不用手动申请和配置ssl证书,只需要在本项目中进行增删改查就可方便的配置和启动nginx,能覆盖nginx日常90%的功能使用配置,平台没有涵盖到的nginx配置项, 可以使用自定义参数模板,在conf文件中生成配置独特的参数,为我们使用nginx提供了极大的便利。

接下来我们通过侧边栏的目录,对nginxWebUI进行一个深入的研究。

本地

系统运行状态

系统运行状态可监控当前系统的运行是否正常,其中监控的内容分为两个部分:

服务器状态

实时监控了系统的简单状态信息,包括cpu使用率(小于50%都是正常)、内存使用(Linux/Unix系统管理内存的方式和windows是不一样的,即便是一个负载很小的linux,跑几天后,内存占用量也将达到90%以上,即便无人访问,这个数字是完全正常的。但是,这个内存占用量不会达到100%的,每天夜里系统都会执行/etc/cron.daily进行内存优化。 )和磁盘使用,可以让你时刻掌握服务器的工作状态,及时发现异常。

网速统计

通过时刻图展示每一秒发送网速和接收网速,可以通过当前的网络情况对程序的运行状态进行一定的判断。

参数配置

基本参数配置

设置nginx配置文件的基本选项。

配置内容:

预览:

# 加载外部插件  使nginx支持四层负载均衡(如不使用stream可不配置)
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
# 启动进程,通常设置成和cpu的数量相等
worker_processes auto;
# pid文件及其路径
pid /home/nginxWebUI/nginx.pid;
# 工作模式及连接数上限
events {
  	# 单个后台worker process进程的最大并发链接数
    worker_connections  1024;
    accept_mutex on;
  }

nginx基本配置与参数说明:

# 运行用户 若不指定默认为nobody
user nobody;
# 启动进程数,默认为1,多开可以提高性能,最好和cpu的内核数匹配
worker_processes 1;

# 全局错误日志[debug|info|notice|warn|error|crit|alert|emerg],默认为crit
# 注意:不要配置info等级较低的级别,会带来大量的磁盘I/O消耗。
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log debug;

# 记录该进程的id
pid logs/nginx.pid;

#工作模式及连接数上限
events {
# 仅对指定的客户端输出debug级别的日志: 语法:debug_connection[IP|CIDR]
# 这个设置项实际上属于事件类配置,因此必须放在events{……}中才会生效。它的值可以是IP地址或者是CIRD地址。
debug_connection 10.224.66.14;  #或是debug_connection 10.224.57.0/24
# 这样,仅仅以上IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别。
# 注意:在使用debug_connection前,需确保在执行configure时已经加入了--with-debug参数(详见Linux系统如何执行"./configure"),否则不会生效。 
  
# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]
# Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
# Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
# Epoll:使用于Linux内核2.6版本及以后的系统。
# /dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
# Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。
use epoll;

# 单个后台worker process进程的最大并发链接数
worker_connections 1024;
}

http参数配置

在http参数配置中可以配置nginx的http项目,进行http转发, 默认会给出几个常用配置,你可以直接根据自己的需要对其进行配置,再也不用记这些复杂的指令了,当然果然有其他需要的配置也可自由增删改查,补充完成对http参数的配置,还可以勾选开启日志跟踪, 生成日志文件。

默认表单页:

预览:

http {
  # 嵌入其他配置文件 语法:include /path/file 参数既可以是绝对路径也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录)
  # mime.type:文件扩展名与文件类型映射表
  include mime.types;
  # 默认文件类型
  default_type application/octet-stream;
  # 默认编码
  charset utf-8;
  # map指令用于根据现有的变量的值来赋值新变量:map string $variable { … }
  # string可以是一个或多个变量组成的字符串
	# $variable是新变量名
	# {...}中的内容为source与resulting的映射
  map $http_upgrade $connection_upgrade {
    # default value 设置默认值
    default upgrade;
    '' close;
  }
  # 连接超时时间
  keepalive_timeout 75s;
  # 是否开启压缩传输,通过gzip压缩的形式发送数据,减少发送的数据量
  gzip on;
  # 最小压缩文件
  gzip_min_length 4k;
  # 压缩率
  gzip_comp_level 4;
  # 最大上传限制
  client_max_body_size 1024m;
  # 客户端请求头butter大小
  client_header_buffer_size 32k;
  # 请求主体缓冲区
  client_body_buffer_size 8m;
  # 服务器名称的哈希表大小
  server_names_hash_bucket_size 512;
  # 头部哈希表的最大值
  proxy_headers_hash_max_size 51200;
  # 头部哈希表的大小
  proxy_headers_hash_bucket_size 6400;
  # 压缩文件类型
  gzip_types application/javascript application/x-javascript text/javascript text/css application/json application/xml;
  # 错误日志路径
  error_log /home/nginxWebUI/log/error.log;
  # 运行日志路径
  access_log /home/nginxWebUI/log/access.log;

Stream参数配置

这里配置nginx的stream作用域的参数, 大多数情况下可不配。

反向代理

可选择手动添加反向代理,或直接导入nginx.conf;还有检查端口占用的功能,可以查看当前被占用的端口;

在反向代理中可配置nginx的反向代理即server项功能, 这里是最常用的功能, 反向代理可指向其他ip端口或已配置好的负载均衡器, 也可直接指向静态html根目录, 可开启ssl功能, 可以直接从网页上上传pem文件和key文件, 或者使用服务器内部存放的证书, 或使用本系统申请的证书, 可以直接开启http转跳https功能。

通过填写表单内容实现server的大部分功能,表单没有的部分可通过设置额外参数进行配置,提交后系统将自动生成代码行并可进行预览。

表单页:

预览:

server {
  # 监听的域名
  server_name jingbao_test.ywjasolar.com;
  # 监听的端口号   是否开启ssl
  listen 443 ssl;
  # 密码文件的输入提示
  auth_basic "请输入正确的密码";
  # 密码文件的路径
  auth_basic_user_file /home/nginxWebUI/password/liwh;
  # 证书pem文件路径
  ssl_certificate /home/nginxWebUI/cert/6559931__ywjasolar.com.pem;
  # 证书key文件的路径
  ssl_certificate_key /home/nginxWebUI/cert/6559931__ywjasolar.com.key;
  # ssl协议的版本
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  # 使项目同时支持http和https
  listen 80;
  if ($scheme = http) {
    return 301 https://$host:443$request_uri;
  }
  location / {
    # 代理目标 动态http类型
    proxy_pass http://172.16.2.8:31000/;
    # http跳转到https
    proxy_redirect http:// https://;
  }
  location /daping/ {
    # 代理目标 负载均衡类型
    proxy_pass http://test/;
    proxy_redirect http:// https://;
  }
}

负载均衡

在负载均衡中可配置nginx的负载均衡即upstream项功能, 在反向代理管理中可选择代理目标为配置好的负载均衡器. 负载均衡分为http协议负载均衡和tcp协议负载均衡。

使用方法与反向代理类似。

表单页:

预览:

# 负载均衡的名称
upstream sso_test {
  # 负载策略 [轮询|weight|ip_hash|least_conn|fair|url_hash] 部分策略可以同时使用
  # 轮询:默认方式,无需配置,每个请求会按时间顺序逐一分配到不同的后端服务器。
  # weight:权重越高分配到需要处理的请求越多。
  # ip_hash:保证每个访客固定访问一个后端服务器。
  # least_conn:把请求转发给连接数较少的后端服务器,此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。
  # fair:按照服务器端的响应时间来分配请求,响应时间短的优先分配。
  # url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。
  # sticky:扩展模块,基于cookie的一种nginx的负载均衡解决方案,通过分发和识别cookie,来使同一个客户端的请求落在同一台服务器上。
  # 负载
  # 负载一  ip:端口  权重  失败等待时间  最大失败数 策略状态:停用(down)备用(backup)
  server 172.16.2.8:31003 weight=1 fail_timeout=10s max_fails=1 ;
  # 负载二
  server 172.16.2.8:40000 weight=1 fail_timeout=10s max_fails=1 ;
}

可选择开启“负载节点监控”功能。在负载发生变化时自动将变化信息推送至邮箱。

启用配置

  1. 对比文件

将生成的配置文件和目标文件进行差异对比,只比较配置文件nginx.conf,如果选择了按域名分解文件,各域名的配置文件将不会出现在这里。

  1. 校验文件

等于nginx -t。

  1. 替换文件

将当前版本覆盖原文件,原文件自动备份。

  1. 重新装载

等于nginx -s reload。

  1. 按域名分解文件

选择打开后将各个配置文件分开放在conf.d下,方便查看和管理。

各文件将通过以下方式在nginx.conf引用:

include /home/nginxWebUI/conf.d/upstreams.test.conf;
include /home/nginxWebUI/conf.d/upstreams.sso_test.conf;
include /home/nginxWebUI/conf.d/jingbao_test.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/jingbao_test_api.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/hf_jingbao_test.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/jingbao_daping_test.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/sso_test.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/sso_test_api.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/hf_sso_test.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/kibana.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/zt.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/dev.ywjasolar.com.conf;
include /home/nginxWebUI/conf.d/gateway_test.ywjasolar.com.conf;
  1. 启动nginx

可选择以下命令执行:

  1. 关闭nginx

可选择以下命令执行:

  1. nginx状态展示

展示目前nginx是否在运行。

  1. 还原文件

每次修改都会将原文件进行备份,用于还原,nginx出现错误时可以选择回滚到某一个历史版本。

参数模板

设置常用的参数,方便下次使用。

静态页面上传

上传静态页面的zip包,位置在/home/nginxWebUI/wwww/xxx文件,自动解压。

文件管理

密码文件管控

用于记录生成密码文件,可选择在反向代理中使用,限制用户访问。

证书管理

在证书管理中可添加证书, 并进行签发和续签, 开启定时续签后, 系统会自动续签即将过期的证书。

nginx日志查看

自定义选择需要查看的日志,通常为访问日志和报错日志等,文件的位置一般在nginx的http参数配置时人为配置。

操作日志

监控每个用户在对配置文件的操作,比较鸡肋的是它也只能和5.a对比文件一样只能监控对配置文件的操作,如果配置文件按域名进行了分解,此处无法查看到对反向代理、负载均衡等内容进行的操作。

数据导入导出

程序日志(nginxWebUI.log)的导出、配置数据的导入导出。

远程管理

远程服务器

如果有多台nginx服务器, 可以都部署上nginxWebUI, 然后登录其中一台, 在远程管理中添加其他服务器的ip和用户名密码, 就可以在一台机器上管理所有的nginx服务器了。

提供一键同步功能, 可以将某一台服务器的数据配置和证书文件同步到其他服务器中。

关于

此页为nginxWebUI和其开发者的的一些信息,创作不易,且用且珍惜。