NginxProxyManager
今天就来水一篇搁置几天的文章,那就是反代神器 NginxProxyManager ,这个应用搭建特别简单,可以使用Docker-Compose 一键部署。食用方法也很简单,反代只需要你有域名和所需要代理的 ip:port
就可以。下面让我们看看如何搭建这个神器吧。
1 什么是代理
代理服务器是一种在网络中起到中间人作用的服务器。它扮演了用户和目标服务器之间的桥梁,用于转发请求和响应。代理服务器可以分为正向代理和反向代理两种类型。
1.1 正向代理
正向代理是指代理服务器位于客户端和目标服务器之间,代理服务器代表客户端向目标服务器发起请求。在这种情况下,目标服务器无法直接知道请求的真实客户端是谁,因为它只看到了代理服务器发起的请求。
使用场景:
- 访问受限资源: 在一些网络环境中,一些资源可能被限制访问,而使用正向代理可以绕过这些限制。
- 匿名访问: 用户可以通过正向代理隐藏其真实 IP 地址,实现匿名访问。
1.2 反向代理
反向代理是指代理服务器位于目标服务器和客户端之间,代理服务器接收客户端的请求并将其转发给目标服务器。目标服务器处理请求并将响应发送回代理服务器,最终由代理服务器将响应返回给客户端。对于客户端而言,似乎是直接与代理服务器通信。
使用场景:
- 负载均衡: 反向代理可以分发请求到多个目标服务器,实现负载均衡,提高系统性能和可用性。
- 安全性和隐藏内部结构: 反向代理可以隐藏后端服务器的真实 IP 地址,提高安全性,并且客户端无法直接访问后端服务器。
- SSL 加密终结: 反向代理可以在代理服务器上终止 SSL 连接,减轻后端服务器的负担。
通过理解正向代理和反向代理的基本概念,我们可以更好地掌握代理服务器在网络中的作用和应用。在接下来的部分,我们将深入介绍 Nginx Proxy Manager,并了解如何使用它来配置和管理代理服务。
2 应用部署
部署方式有很多,这里我推荐大家使用docker-compose一键部署,简单方便。
部署前要完成一下工作(必项)
- 一台可以公网访问的Linux服务器
- 安装docker
- 安装docker-compose
必须工作完成后,就可以按照以下步骤进行部署了。
2.1 创建文件夹
在终端输入以下命令
sudo -i
mkdir -p /root/data/docker_data/nginxpm
cd /root/data/docker_data/nginxpm
2.2 创建 docker-compose 文件
创建并打开文件,下面两行任意一行都可以
vim docker-compose.yml
nano docker-compose.yml
2.3 编辑 docker-compose 文件
在打开的文件中复制粘贴以下内容。
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中
按照自己的情况修改完成后就可以退出了。
vim 编辑情况下,编辑完成后按下
esc
键后输入:wq
点击回车即可保存退出nano 编辑情况下,编辑完成后按下
Ctrl+X
组合键后输入y
点击回车即可保存退出
如果想要查看编辑好的文件可以使用 cat
命令查看文件内容
cat docker-compose.yml
2.4 检查端口占用
查看设定的端口是否有占用,在终端输入以下命令进行查看。如果什么都没有输出,则表示没有占用。在Linux中,没有反馈就是最好的反馈。
lsof -i:81
81
为你自己设置的端口
2.5 启动应用
以上所有步骤都完成以后,可以去服务器提供商那里查看是否有安全组策略或者防火墙,也需要把相应的端口给开放,否则无法访问服务。
在终端输入以下命令启动容器
docker-compose up -d
容器启动成功就可以使用 ip:prot
进行访问了。可以使用以下命令进行查看容器是否启动成功
docker ps
3 使用
3.1 登录
在第一次启动时候,登录使用的用户名和密码是默认的,为以下内容。在你第一次登录的时候,需要你手动修改用户名和密码。务必修改完成后记住账号和密码。
Email: admin@example.com
Password: changeme
3.2 创建新的反向代理
- 首先在主页点击左侧的 Proxy Hosts
- 然后点击右侧的 Add Proxy Host
- 依次在必填项中输入 域名 ,IP 和 端口Port ,输入完成后点击保存。下面几个选项分布是缓存,常见漏洞,Websockets协议支持,看自己需求是否需要打开。
我的建议是阻止常见漏洞打开 Block Common Exploits
- 完成上面三步其实就可以直接使用域名进行访问了,但是这样不安全,而且使用过程也美观,打开网址后没有“小锁”。此时就可以申请一个证书。点击 SSL 按照步骤依次点击即可。
建议申请成功后将第一项 Force SSL 打开,也就是强制 https 访问。其余几项看自己情况是否有需要。
3.3 访问
完成以上所有步骤后,反向代理就设置成功了。以后你部署的应用就可以既美观又安全的使用域名进行访问了。
其他
其余要说的就是这个应用 Nginx Proxy Manager的证书时长是会到期的,到期后手动续期就好了,这都是小问题。
最后真心推荐这个反向代理神器,Docker+NginxProxyManager太香了!
大家如果有什么疑问可以给我留言。