什么是Nginx Proxy Manager?
这是官网的一段话: This project comes as a pre-built docker image that enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
该项目作为一个预构建的 docker 镜像提供,使您能够轻松地转发到在家里或其他地方运行的网站,包括免费的 SSL,而无需对 Nginx 或 Letsencrypt 有太多了解。
说白了,就是可以通过这个工具更简单方便的配置反向代理的配置及SSL证书的设置。
搭建环境
- 一台服务器 必需
- 已经安装了Docker及Docker-compose 必需
搭建过程
1.新建目录
新建一个目录存放Nginx Proxy Manager的配置和项目文件
代码语言:javascript复制mkdir ngingx_proxy_manager && cd ngingx_proxy_manager
2.新建文件
新建docker-compose.yml
文件并复制以下内容
version: "3"
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:
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:
- ./data/mysql:/var/lib/mysql
3.启动服务
代码语言:javascript复制docker-compose up -d
4.放行服务器81端口
可以通过控制台或者宝塔面板亦或者命令行
代码语言:javascript复制# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
#查看是否放行了81端口
firewall-cmd --query-port=81/tcp
#放行81端口
firewall-cmd --zone=public --add-port=81/tcp --permanent
#刷新生效
firewall-cmd --reload
4.访问控制台
通过http://你的服务器ip:81
访问web管理界面
默认账号密码为
Email: admin@example.com
Password: changeme
在输入账号密码进入后,会强制要求修改账号密码,然后就可以进行我们的配置了。