nginx proxy manager是一个简单好用的nginx反向代理配置工具,基于docker运行的。这使得它的部署和运行的非常方便。
这里使用官方提供的一键脚本来进行安装,脚本同时会安装docker compose
bashcurl -fsSL https://get.docker.com | bash -s docker
将下面的文件保存为docker-compose.yml文件,然后在目录中运行docker compose up -d即可拉取镜像并启动容器。 这里提供两个编排文件供大家选择,分别为官方原版和大神汉化的版本,个人推荐汉化版本。
ymlversion: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
ymlversion: '3'
services:
app:
image: 'chishin/nginx-proxy-manager-zh:release'
restart: always
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
默认监听端口为81,登陆地址http://yourip:81
默认用户名:[email protected]
默认密码:changeme
因为nginx proxy manage是运行在docker中的,docker通过一个虚拟的交换机跟主机连接,127.0.0.1对于一个docker容器来说,相当于其内部地址,是无法被外部访问的。需要反代本地的端口,要在代理配置中填入docker host的IP。一般默认为172.17.0.1 也可以使用ip a命令查看docker0网卡所在的IP
我们知道nginx中是支持gRPC反代的,下面是一个配置的示例,在高级
标签,自定义配置
中填入下面代码,并将gRPC的服务器地址和端口修改为自己的。
underscores_in_headers on; location / { grpc_read_timeout 300s; grpc_send_timeout 300s; grpc_socket_keepalive on; if ($http_content_type = "application/grpc") { grpc_pass grpc://172.18.0.1:7891; } proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_http_version 1.1; # Proxy! include conf.d/include/proxy.conf; }
<CONTAINER ID>
jsdocker exec -it <CONTAINER ID> sh
apt update && apt install sqlite3 -y
sqlite3 /data/database.sqlite
UPDATE user SET is_deleted=1; .exit exit
docker restart <CONTAINER ID>
容器重启成功之后,即可使用默认的用户名和密码登陆
默认用户名:[email protected]
默认密码:changeme
登陆后,按提示新建一个管理员用户名和密码。
需要恢复原来的管理员和配置,执行下面的操作
docker exec -it <CONTAINER ID> sh sqlite3 /data/database.sqlite UPDATE user SET is_deleted=0; .exit exit docker restart <CONTAINER ID>
docker exec -it <CONTAINER ID> sh mysql -u root -p
查看docker-compose.yml文件,获取mysql root的密码
继续执行下面的命令
USE npm; UPDATE user SET is_deleted=1; quit exit
docker exec -it <CONTAINER ID> sh mysql -u root -p USE npm; UPDATE user SET is_deleted=0; quit exit