简介
内网里大部分的服务都是使用nginx去做代理的,nginx的配置其实还算方便,但是还不够方便,于是就看到了Nginx Proxy Manager,可以使用图形界面去配置代理,目前使用下来,出了不能配置负载均衡,其他一切感觉良好
Nginx Proxy Manager的功能
介绍下功能
首先就是可以直接去申请Let’s Encrypt 的证书,但是因为我在中国,申请的时候会受网络的影响导致申请不成功
其次就是配置访问的黑白名单,目前这个对于我来说没啥用
然后就是可以配置四层stream代理,7层http代理,重定向,还有就是404主机
支持多用户,操作日志,默认主机等功能
目前除了负载均衡,详细的其他功能都ok,界面也很漂亮,表示会长期关注这个项目并且会使用下去
项目地址
https://github.com/jc21/nginx-proxy-manager
搭建
没有什么事情是一个docker-compose.yaml所不能解决的
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:2.9.7'
restart: always
ports:
- '0.0.0.0:80:80'
- '0.0.0.0:81:81'
- '0.0.0.0:443:443'
- '0.0.0.0:8080:8080'
environment:
DB_MYSQL_HOST: ""
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "root"
DB_MYSQL_PASSWORD: ""
DB_MYSQL_NAME: ""
DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- ./nginx.conf:/etc/nginx/nginx.conf
个人推荐最好把nginx.conf挂载出来方便去自定义一些东西,后端的mysql还是使用自己的吧,或者你也可以搭建一个
之后直接访问主机的81端口就好了,默认的用户名密码
Email: [email protected]
Password: changeme
使用prometheus监控
在data/nginx/custom
下面创建一个
http.conf
然后加入
server {
listen 8080;
server_name 192.168.1.1;
# http_stub_status_module 状态
location = /stub_status {
stub_status on;
allow all;
#deny all;
}
}
之后访问ip:8080/stub_status就可以看到http_stub_status_module的页面了
接着就是使用nginx-prometheus-exporter去把这个页面转换问mertics的页面,所以再来一个compose
version: "3"
services:
nginx-prometheus-exporter:
image: "nginx/nginx-prometheus-exporter:0.9.0"
container_name: "nginx-prometheus-exporter"
restart: "always"
ports:
- "0.0.0.0:9113:9113"
command:
- -nginx.scrape-uri=http://192.168.1.1:8080/stub_status
欢迎关注我的博客www.bboy.app
Have Fun