Xintao
Xintao
发布于 2023-11-21 / 7 阅读
0

Nginx Proxy Manager来啦!

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 创建新的反向代理

  1. 首先在主页点击左侧的 Proxy Hosts
    image

  2. 然后点击右侧的 Add Proxy Host
    image

  3. 依次在必填项中输入 域名IP端口Port ,输入完成后点击保存。下面几个选项分布是缓存,常见漏洞,Websockets协议支持,看自己需求是否需要打开。
    我的建议是阻止常见漏洞打开 Block Common Exploits
    image

  4. 完成上面三步其实就可以直接使用域名进行访问了,但是这样不安全,而且使用过程也美观,打开网址后没有“小锁”。此时就可以申请一个证书。点击 SSL 按照步骤依次点击即可。
    建议申请成功后将第一项 Force SSL 打开,也就是强制 https 访问。其余几项看自己情况是否有需要。
    image

3.3 访问

完成以上所有步骤后,反向代理就设置成功了。以后你部署的应用就可以既美观又安全的使用域名进行访问了。

其他

其余要说的就是这个应用 Nginx Proxy Manager的证书时长是会到期的,到期后手动续期就好了,这都是小问题。

最后真心推荐这个反向代理神器,Docker+NginxProxyManager太香了!

大家如果有什么疑问可以给我留言。

官方地址:https://nginxproxymanager.com/ 直达