代码拉取完成,页面将自动刷新
准备目录
mkdir -p /usr/local/docker-compose/more/nginx-proxy-manager
准备文件
详见官网
cat > docker-compose.yml << \EOF
version: '3.8'
services:
app:
# 更多版本详见 https://hub.docker.com/r/jc21/nginx-proxy-manager/tags
#image: 'jc21/nginx-proxy-manager:latest'
image: 'jc21/nginx-proxy-manager:2'
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
# 此数据库主要用于存储nginx-proxy-manager的相关配置
db:
# 更多版本详见 https://hub.docker.com/r/jc21/mariadb-aria/tags
#image: 'jc21/mariadb-aria:latest'
image: 'jc21/mariadb-aria:10.4.15'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./mysql:/var/lib/mysql
EOF
# 启动
docker-compose up -d
访问:
{host}:81
进入管理界面初始化账密为:
Email: admin@example.com Password: changeme
修改相关信息
提示:如果你用不到ssl证书,那么可以跳过
需要提前准备好证书
注:上图中,name自取即可。考虑到望文知义,建议与证书对应的域名保持一致。
说明:
①:这里申请的是泛域名,所以用了
*.idea-aedi.com
,这样不用为每个Proxy Host
去申请证书②:如果你之前申请过
Let's Encrypt
的证书,那么这里最好跟之前的邮件保持一致,避免不必要的麻烦③:启用即可
④:配置
Let's Encrypt
要对接服务商以及对应的对接秘钥,本人这里用的是Aliyun
,需要阿里云账号的ak、sk。考虑到主账号的ak/sk有所有的权限,所以本人这里先创建了一个子账号,同时限定该子账号只具有DNS相关的权限,最后再给该子账号生成属于该子账号的ak/sk:
创建一个子账号
给子账号授权
给子账号生成ak、sk
⑤:同意即可
说明:
- ①:你的域名
- ②:要反向代理去的目标地址(即:访问域名时,会将请求定向至这里)
- ③:设置阻止常见漏洞
说明:
- ①:选择第五步配置的ssl证书
- ②:是否强制走ssl,即:是否自动将非ssl的请求转换为ssl请求(如:开启了此项后,那么当使用http进行访问时,会自动转换成https进行访问)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。