如何安装Nginx Proxy Manager

什么是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证书的设置。

官网.png

搭建环境

  • 一台服务器 必需
  • 已经安装了Docker及Docker-compose 必需

搭建过程

1.新建目录

新建一个目录存放Nginx Proxy Manager的配置和项目文件

代码语言:javascript
复制
mkdir ngingx_proxy_manager && cd ngingx_proxy_manager

2.新建文件

新建docker-compose.yml文件并复制以下内容

代码语言:javascript
复制
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://你的服务器http://你的服务器ip:81访问web管理界面
默认账号密码为

代码语言:javascript
复制
Email:    admin@example.com
Password: changeme

在输入账号密码进入后,会强制要求修改账号密码,然后就可以进行我们的配置了。