前言
之前一直用 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
最周
其实 更加灵活的情况 还是 自己手写
后期如果有时间 打算自己做一个 类似功能。