好用的Nginx可视化管理工具

胡萝虎 

最近在捣鼓自己的网站,使用Hexo写完文章后,生成静态html网站,然后推送到云主机上。打算在云主机上用nginx做反向代理,映射域名到静态网站目录。

虽然配置起来不复杂,但是每次都要ssh到云主机去修改nginx的config文件倒是有点繁琐。突然想起来前段时间看到过一个可视化的nginx管理工具,话不多说,直接搞起。

 

进入正题

这个工具是nginxWebUI,使用Spring Boot开发,支持在Web界面中配置Nginx的各项功能,包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置(重点!!!)等, 最终生成nginx.conf文件并覆盖nginx的默认配置文件, 完成nginx的最终功能配置。

当然,在Web界面只能操作常见的功能,很多nginx复杂的操作还是需要手工修改config文件的,不过基本够用了。目前这个工具Github有260+Star,更新维护还挺频繁。

 

安装

1. 技术说明

基于springBoot的web系统, 数据库使用sqlite, 因此服务器上不需要安装任何数据库。

另外,SSL证书自动申请是通过Let’s encrypt申请的, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨2点进行续签, 只有超过60天的证书才会进行续签. 只支持在linux下签发证书。

其他更多的细节可以参考作者的github页面,这里就不做更多介绍了。

2. 安装方法

划重点,此工具安装过程需要root权限,请切换到root用户下进行操作。

 

2.1 安装java和Nginx

ubuntu:

apt install openjdk-8-jdk
apt install nginx

 

centos:

yum install java-1.8.0-openjdk
yum install nginx

 

2.2 安装nginxWebUI
  • 首先下载安装包
    wget http://file.nginxwebui.cn/nginxWebUI-2.4.4.jar
    
  • 启动程序
    nohup java -jar -Xmx64m nginxWebUI-2.4.4.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &
    

    后台启动,端口可以按照自己需要修改。同时也支持其他启动参数(非必选):

    -Xmx64m 最大分配内存数
    
    --server.port 占用端口, 默认以8080端口启动
    
    --project.home 项目配置文件目录,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/
    
    --spring.database.type=mysql 使用其他数据库,不填为使用本地sqlite,选项包括mysql和postgresql
    
    --spring.datasource.url=jdbc:mysql://ip:port/nginxwebui 数据库url
    
    --spring.datasource.username=root 数据库用户
    
    --spring.datasource.password=pass 数据库密码
    
  • 使用

    启动成功后,在浏览器中打开 http://ip:port ,即可进入系统页面。首次打开会要求初始化管理员账号,进入系统后可以在管理员管理模块中修改管理员账号、密码。

    image-20210120105632176

3. 开机启动和进程守护

开机重启和进程守护我们通过Supervisor来完成。

3.1 安装Supervisor

ubuntu:

apt install supervisor

centos:

yum install epel-release # 引入supervisor的源
yum install supervisor # 安装supervisor
systemctl start supervisord.service     #启动supervisor并加载默认配置文件
systemctl enable supervisord.service    #将supervisor加入开机启动项

 

3.2 配置Supervisor

ubuntu:

vim /etc/supervisor/conf.d/nginxwebui.conf

centos:

vim /etc/supervisord.d/nginxwebui.ini

 

在配置文件中加入以下内容:

[program:nginxwebui]
command=java -jar /home/nginxWebUI-2.4.4.jar #nginxWebUI的存放路径
autostart=true #是否开机自启动
autorestart=true #是否进程死掉后自动重启
stderr_logfile=/tmp/nginxwebui_stderr.log #错误输出目录
stdout_logfile=/tmp/nginxwebui_stdout.log #日志输出路径
user = root #启动用户,必须为root

配置完成后,重启Supervisor即可。

 

最后

这个工具作者也做了docker镜像,需要的朋友也可以使用docker安装,镜像名称为cym1102/nginxwebui,在此不再赘述,

Recommended Posts

Jellyfin中使用QSV替代VAAPI转码

使用过Jellyfin的应该都会遇到转码的问题,默认情况下都是使用VAAPI进行转码,这种方式兼容性比较好,但是转码的性能比较一般。如果使用的是Intel平台J4125及更早的CPU的话,建议切换为QSV(Intel Quick Sync )进行转码,效率会比VAAPI快很多,并且CPU也会更低。

胡萝虎 

在群晖上使用Docker部署为知笔记服务

虽然市面上有很多各种类型的云笔记应用,像有道云笔记、印象、OneNote,包括Notion,博主都曾尝试使用过。但是随着资料越来越多,特别是一些涉及个人隐私的资料放在云端笔记上,比如密码、账号之类的,让博主越来越感到焦虑😂。博主此前也曾在群晖部署过蚂蚁笔记,但是使用感受实在不咋滴;一段时间以来,只能勉强用群晖自带的弱智Note Station来记录个人资料,真怕哪天自己也搞弱智了。

最近实在受不了Note Station的反人类操作了,不得不再次开启寻找解决方案的征途,幸运的是,Eureka…… 为知笔记的私有化方案终于让我解放啦

胡萝虎 

在群晖中搭建Cloudreve网盘系统

众所周知,某度网盘为了挣钱,各种极限限速,下载限速能把人恶心死。但是,网盘类服务越来越成为人们的刚需,不管是个人生活中的照片,还是工作学习中各类资料,相信很多人都需要使用到网盘进行存储和分享。如果你不想忍受某度的速度,建议有条件的朋友可以试试自己搭建一套网盘系统,本文以Cloudreve为例,在群晖NAS上搭建一套属于自己的私人网盘服务,供读者们参考

胡萝虎 

在群晖上搭建Bitwarden密码管理服务器

管理密码是很多人头痛的事,密码设置简单好记又不太安全,设置复杂又容易忘。为了解决这个难题,市面上出现了不少密码管理工具,帮助人们管理在各种平台、系统、网站、APP上设置的密码,比如1Password、Lastpass、KeePass等,不过绝大多数需要付费才能使用。本着能白嫖就绝不花一个子儿的原则,今天我就来介绍一个不需要花钱的密码管理器——Bitwarden

胡萝虎 

使用Docker一键安装服务端神器Appwrite

Appwrite是一个基于Docker的开源的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

简单来说,如果你只会前端开发,不懂后端技术,那么这个神器就可以帮你轻松完成后端服务搭建,包括账户、用户、团队、数据库、存储、云函数等等,目前支持各类前端平台,包括Flutter、Vue、Angular、React、iOS和Android等

胡萝虎 

Leave A Comment