Nginx Proxy Manager

轻松安全地公开您的 Web 服务


Docker-Compose

创建 docker-compose.yml 文件

1
nano docker-compose.yml
  1. 初始账号 admin@example.com
  2. 初始密码 changeme
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
1
docker-compose up -d

开启 80 81 443 端口

1
2
3
ufw allow 80/tcp
ufw allow 81/tcp
ufw allow 443/tcp

部署静态网站

进入挂载 data 文件夹下,新建你要创建的静态网站文件夹 docs.rahn.top

来到 Edit Proxy HostAdvanced 输入以下内容,就完成了静态网站的搭建

1
2
3
location / {
root /data/docs.rahn.top;
}

登陆限制功能


一键脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#! /bin/bash

red(){
echo -e "\033[31m\033[01m$1\033[0m"
}
green(){
echo -e "\033[32m\033[01m$1\033[0m"
}
yellow(){
echo -e "\033[33m\033[01m$1\033[0m"
}


# Nginx Proxy Manager

function nginx-proxy-manager_install(){
if nc -z localhost 80 || nc -z localhost 81 || nc -z localhost 443; then
echo "端口 80、81 或 443 已经被占用,请检查相关进程。"
exit 1
fi
if docker ps -a --format "{{.Names}}" | grep -q "npm"; then
echo "容器名 npm 被占用"
exit 1
fi
if [ ! -d /root/docker/Nginx-Proxy-Manager ]; then
mkdir -p /root/docker/Nginx-Proxy-Manager
fi
cd /root/docker/Nginx-Proxy-Manager
if [ -f "docker-compose.yml" ]; then
rm docker-compose.yml
fi
cat <<EOF > docker-compose.yml
version: '3.3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
EOF
docker-compose up -d
ufw allow 80/tcp
ufw allow 81/tcp
ufw allow 443/tcp
yellow "-----------------------------------------------"
green " Web 端口:80 81 443"
echo
green " Docker IP = $(ip addr show docker0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1):81"
echo
green " 服务器 IP = http://$(ifconfig $(ifconfig | grep -oP 'enp\w+') | grep 'inet ' | awk '{print $2}'):81"
echo
green " Nginx Proxy Manager 安装完毕!"
yellow "-----------------------------------------------"
}

function start_menu(){
clear
yellow "-----------------------------------------------"
red " Nginx Proxy Manager —— 反向代理"
yellow "-----------------------------------------------"
green " 1. Nginx Proxy Manager 安装"
yellow "-----------------------------------------------"
red " 0. 退出脚本"
echo
read -p "请输入数字:" menuNumberInput
case "$menuNumberInput" in
1 )
nginx-proxy-manager_install
;;
0 )
exit
;;
* )
clear
red "请输入正确数字!"
start_menu
;;
esac
}
start_menu

官方: https://nginxproxymanager.com/