📀安装Nginx-Proxy-Manager
使用Nginx-Proxy-Manager管理域名反代和重定向
Nginx-Proxy-Manager官网:https://nginxproxymanager.com/
项目Github地址:https://github.com/NginxProxyManager/nginx-proxy-manager
使用docker-compose安装:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
以上是最小化安装脚本,使其能跑起来的最低要求,用的是Docker的Volume数据库,在重构时很可能导致数据丢失,官方建议使用MySQL / MariaDB数据库,将Docker-Compose改成如下:
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
# Mysql/Maria connection parameters:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./mysql:/var/lib/mysql
但是我有一次在构建MySQL / MariaDB数据库时由于之前跑过别的项目导致了数据库冲突,折腾了半天没搞好,最终我是选择了最小化安装解决。
安装完成后管理地址为ip:81 默认账号[email protected]默认密码changeme
关于反代的ip:需要看NPM的docker容器的network getaway,而不是127.0.0.1!
在使用前建议先手动导入根域名SSL证书(推荐使用OHTTPS,申请方便,而且自动续期)到SSL证书的添加Custom证书页面,就可以给改根域下添加的所有二级域名开启HTTPS了,我们一般都是只需要用某个域名指向服务器的某个端口,那么直接在主面版配置就行,如果需要用域名指向某个端口的path地址(比如下面讲道德Nginx中,以及后面的Pandora api余额查询中就可能会用到),那么需要在高级选项面板配置local路径(注意只填下面的local语句块,不是完整的配置文件),下面是一个示例,末尾添加了path路径,注意结尾的斜杠/一定不能少!:
location / {
proxy_pass http://172.29.0.1:8083/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
最后更新于