- Published on
「推荐」 Nginx Proxy Manager
- Authors
- 作者
- 老麦
前言
Nginx 管理神器,很早之前就听说这个项目,但一直没有去试用。最近在 CloudCone 上购买了一个新的 VPS,这次搬家不想再次困在宝塔面板上,哪怕宝塔面板用起来真的很省心。新的 VPS 计划用 Docker 来管理手上的项目,毕竟容器化方便对项目的迁移,至于损耗的那一点点性能就忽略不计了。
安装
- 在 docker 目录下新建一个 nginxproxymanager 目录用于存放相关的数据;
- 在 nginxproxymanager 目录下新建一个 docker-compose.yml 文件;
相关操作:
# 新建目录
mkdir -p ~/docker/nginxproxymanager && cd ~/docker/nginxproxymanager
# 新建docker-compose.yml
vim docker-compose.yml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ~/docker/data/nginxproxymanager/data:/data
- ~/docker/data/nginxproxymanager/letsencrypt:/etc/letsencrypt
这里绑定目录我是保持着个人习惯的,详细说明可参照:使用 Docker 来部署 Wordpress。
# 运行
docker compose up -d
使用
虽然界面全英文,但是使用起来一点都不难,很是直观,以下记录几个自己踩过的坑。
- Forward Hostname / IP 如果是代理 Docker 里的容器时,这一栏选择 Docker 的内网 IP 比较适合,查看 Docker 的内网 IP 可以使用 ip addr | grep docker 这个命令;
- Redirection Hosts 在 Hosts 菜单上可以选择,用作重定向。因为习惯了宝塔的操作模式,以为重定向也是只需在 Proxy Hosts 上设置就行,Nginx Proxy Manager 则需要单独设置;
- Access Lists 可以给 Hosts 加一道防线,但实际使用中发现,如果你的页面需要登陆的话,再添加一个 Access Lists 的话就会出现一个 Bug,无法正确打开,希望以后的版本可以修复此功能;
- Data 存放 Nginx Proxy Manager 这个容器的数据,在 data 目录上新建一个目录用作存放静态博客的话,Forward Hostname / IP 这一栏选择填入 127.0.0.1,端口选择根据 Scheme 来选择 80/443 即可。在 Advanced 这里设置相应的目录,⚠️ 注意的是该目录只能存在于 data 目录下。示例如下:
location / { root /data/test.iamlm.com; }
- SSL Certificates Nginx Proxy Managegr 上申请证书真的很方便,可以申请泛域名(打开 DNS Challange 即可选择相应的托管进行设置),也可以下载证书,创建时绑定的 letsencrypt 目录就是保存证书文件的;