Nginx Proxy Manager
Nginx proxy manager是一个很简单的反向代理工具。
官网:https://nginxproxymanager.com/
门槛极低,操作简单,不需要你掌握很复杂的Nginx配置知识,只需要几步就能很轻松完成反向代理的设置和SSL证书的部署。
Nginx Proxy Manager是一个非常优秀的Docker项目。所以,首先我们需要安装Docker、Docker-compose。
步骤如下:
1.Docker安装
wget -qO- get.docker.com | bash
注:卸载Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
注意:出现 sudo: unable to resolve host [hostname]
,可以编辑 nano /etc/hosts
然后在localhost
后面空一格,再打上[hostname]你对应的hostname内容。
查看Docker版本
docker -v
开机自动启动
systemctl enable docker
2.Docker-compose安装
X86:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
3.文件管理
强烈建议大家专门给Docker的数据、配置文件新建一个文件夹
mkdir -p data/docker_data
这样如果换服务器或者想要备份,都会很方便。
现在我们在docker_data里面创建一个Nginx Proxy Manager的文件夹,就取名为NPM吧。
cd data/docker_data
mkdir NPM
cd NPM
nano docker-compose.yml
把配置写入进去,保存。
X86:
最简配置参考:version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
ARM
version: "2"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: always
ports:
# Public HTTP Port:
- '80:80'
# Public HTTPS Port:
- '443:443'
# Admin Web Port:
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
在文件夹下继续运行如下命令,即可部署。
docker-compose up -d
部署完毕后,你就可以通过 docker container ls
查看容器的运行情况。
默认登陆名和密码:
Email: [email protected]
Password: changeme
登陆成功后,系统会要求你修改新的密码。完成后,就可以开始配置了。
点击 New Proxy Host 创建一个代理规则,在 Domin Names 中填写一个或多个你想要用来访问该容器的域名。
如果你没有特殊配置 https ,这里使用默认的 http 第二栏的 Forward Hostname / IP 处,填写容器所在 Docker 网桥的虚拟 IP,这个 IP 可以通过下面的命令查到。
查看Docker容器内部IP:
ip addr show docker0
如果是反代https,可以直接输入服务器IP。
查看当前服务器IP:
curl ifconfig.me
如果你不需要为网站配置 SSL 的话到这里,点击 Save 就可以了。否则,请点击 SSL 选项卡,证书一栏选择申请一个新的 SSL 证书,填写邮件地址,同意协议即可。如果需要强制 https 访问,请打开 Force SSL 选项。最后点 Save 就可以了。
如果你有科学反代需求,可以在Details页面中,打开 Websockets Support
,然后Custom locations里面填写 Define location
,Scheme选择 http
,Forward Hostname/IP填写 服务器IP
,Forward Port则是 反代端口
。
评论 (0)