- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文介绍一下NginxWebUI
,通过这款工具我们可以轻松的以图形化方式来配置我们的Nginx
的各项功能,包括HTTP
协议转发,TCP
协议转发,反向代理,负载均衡,SSL
证书自动申请、续期。NginxWebUI
可以部署在Ubuntu
、CentOS
、Windows
等各个平台,可以通过本地部署或者通过Docker镜像来部署,其中Docker
部署是最为简单的,只需要拉取镜像、创建并启动容器,接下来将演示如何使用Docker
来部署NginxWebUI
。
系统:CentOS 7
Docker:20.10.11
docker pull cym1102/nginxwebui:latest
大家可以根据自己的习惯来自定义nginxWebUI容器与宿主机的映射目录
这段创建容器命令使用了--net=host
,直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口.
docker run -d -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host cym1102/nginxwebui:latest
但是本人一般只用得到80端口和443端口,而nginxWebUI也要用到8080端口,这里我以端口映射的方式来监听:-p 80:80 -p 443:443 -p 8080:8080
自定义端口映射就会有局限性,在配置中你如果代理到其它端口就无法监听到了,所以如果你想端口随意监听请用上面那条命令,如果和我一样只用得到80和443那就请用下面这条命令
docker run -itd -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true -p 80:80 -p 443:443 -p 8080:8080 cym1102/nginxwebui:latest /bin/bash
注意:
docker ps
容器正常启动
由于创建容器的时候我的容器端口参数--server.port=8080
设置的为8080,所以我们就要使用服务器IP+8080端口就可以访问到后台。
例如我的服务器IP:192.168.223.140
,那我就访问192.168.223.140:8080
,就会进入到以下界面,第一次进入后台需要设置用户名和密码:
设置完用户名和密码后直接登录即可:
这里我们成功登录到后台:
在本地中可以配置Nginx基本参数、http参数、Stream参数、反向代理(server)参数、负载均衡。
例如:这里演示配置反向代理(server)参数
代理服务器80端口到服务器的8080端口进行测试
提交配置
启动配置
左边是生成的nginx配置,右边才是nginx的真正配置文件
替换文件
要想我们的配置生效,就需要将生成的nginx配置替换到真正的nginx配置文件中,这里很简单,只需要点击一下替换文件就可以进行替换了,而且替换后会自动备份原文件配置。
启动Nginx
这里有多种启动方案,如果启动失败可以切换其它方案,停止nginx也有多种方案,这里不一一演示。
上面我们将80端口代理到8080端口,这样我们访问80端口会直接来到nginxWebUI的后台。
浏览器访问http协议默认就是80端口可以不用加,这里为了直观展示还是加了
效果:
可以看到我们的配置文件生效了,访问80端口被代理到服务器的8080端口。
这里只展示了反向代理功能,其它功能的使用都差不多一样,大家可自行测试。
nginx本身功能复杂, 这个项目并不能涵盖nginx所有功能, 只能配置常用功能, 更高级的功能配置仍然需要在最终生成的nginx.conf中进行手动编写。
Stackoverflow JS Genius的! 我当前的项目有一个问题,它正在使用 Node 的HTTP createServer,并使用Formidable来解析主体数据。 请参阅下面的代码。
我正在尝试将文件上传到我的 NodeJS 服务器。我目前收到错误: 错误:错误的内容类型 header ,未知的内容类型:image/jpeg “image/jpeg”是有效的 MIME 类型,为什么
我有一个用作路由器的 Node.JS 服务器,可以向它发出 post 请求以上传文件,应该只允许 jpg/png/jpeg 扩展名我目前正在做的是: var form = new formidable
我正在使用https://github.com/felixge/node-formidable用于使用express上传文件。 虽然它工作得很好,但有一个问题:我有一个包含 9 个 type="fil
Haskell 的类型推理引擎比 Scala 的类型推理引擎强大得多。在 Haskell 中,我很少需要显式编写类型,而在 Scala 中,类型只能在表达式中推断,而不能在方法定义中推断。 例如,请参
我将 Superpowered 用于各种实时 FX,它们都非常简单。然而,音高变换是另一回事,我认为事实上是因为它基于时间拉伸(stretch)算法,当然必须处理随时间变化的输出,这比应用 EQ 或混
我正在使用mean stack 和formidable上传文件 表单具有 multipart/form-data 属性 exports.create = function(req, res) {
我正在尝试构建我的第一个 node.js 应用程序,但是,使用 node server.js 运行时,我收到以下错误消息: connect: multipart: use parser (multip
对于强大的 npm 包,当我使用 import * as formidable from "formidable" 时,我收到一条错误消息,指出 formidable({ multiples: tru
我注意到了 std::string str; str += 'b'; // works str.append('b'); // does not work str.append(1, 'b'); //
我有一个需要访问本地 FS 的 HTML/JS(YUI 框架)照片管理器。我应该将 HTML/JS 移动到 AIR,还是硬着头皮将其“移植”到 Flex AIR? 我知道营销说的是什么,但我想要真正的
我是一名优秀的程序员,十分优秀!