最近在捣鼓自己的网站,使用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,更新维护还挺频繁。
基于springBoot的web系统, 数据库使用sqlite, 因此服务器上不需要安装任何数据库。
另外,SSL证书自动申请是通过Let’s encrypt申请的, 使用acme.sh脚本进行自动化申请和续签, 开启续签的证书将在每天凌晨2点进行续签, 只有超过60天的证书才会进行续签. 只支持在linux下签发证书。
其他更多的细节可以参考作者的github页面,这里就不做更多介绍了。
划重点,此工具安装过程需要root权限,请切换到root用户下进行操作。
apt install openjdk-8-jdk
apt install nginx
centos:
yum install java-1.8.0-openjdk
yum install nginx
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 数据库密码
开机重启和进程守护我们通过Supervisor来完成。
ubuntu:
apt install supervisor
centos:
yum install epel-release
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,在此不再赘述。