aio主机上的http统一管理

前言

之前一直用 nginxWebUI 来管理,甚至在给作者反馈一些问题后,作者置之不理后,自己二开了一个版本。
但是nginxWebUI 因为不能手动编辑配置文件,使用起来还是略微麻烦。鼠标点来点去 很烦的哈。

于是又拿起来Nginx-Proxy-Manager

环境

pve lxc alpine 硬盘1G 内存 512M swap关闭 ip 10.1.1.51

准备

1
2
3
4
5
6
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk add tzdata 
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" > /etc/timezone
apk del tzdata
rm -rf /var/cache/apk/*

安装

docker安装

一般情况推荐docker安装,但是我可能需要修改一些地方,所以手动装,官网有推荐一个第三方安装脚本。直接开开始

1
wget --no-cache -qO - https://raw.githubusercontent.com/ej52/proxmox/main/lxc/nginx-proxy-manager/setup.sh | sh

结果在安装到python的地方出错,算了 还是docker 套娃吧。(关于特权容器 安装docker的问题请群内搜索,如果没啥必要就用非特权容器) 顺带装上sshd

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
apk add docker  
rc-update add docker boot
service docker start
docker version
# cat /etc/docker/daemon.json
cat > /etc/docker/daemon.json  << EOF
{
  "registry-mirrors": [
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
EOF
service docker restart
1
2
3
4
apk add openssh
rc-update add sshd boot
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
service sshd restart

创建

因为这个lxc就运行这一个,所以host模式

1
2
3
4
docker run -itd \
    --name=nginx --hostname nginx \
    --net=host \
    jc21/nginx-proxy-manager:2.10.2

因为要修改

基本配置

http://10.1.1.51:81
Email: admin@example.com
Password: changeme

申请ssl证书的时候 zope 错误

1
2
docker exec -it nginx /bin/bash
pip install zope

参考:https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2440

手动配置nginx配置文件

证书目录

1
2
certificate /etc/letsencrypt/live/npm-5/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/npm-5/privkey.pem;

如果要定制一些特殊的 npm-X 这个需要自己记住

配置文件目录

1
2
/etc/nginx/conf.d/
/data/nginx/proxy_host/1.conf 

怎么用

简单的代理 直接在web界面处理就行 需要定制的情况可以直接手写conf

最周

其实 更加灵活的情况 还是 自己手写 后期如果有时间 打算自己做一个 类似功能。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计