前言
我们怎么样才能把 IP + 端口变成域名来访问?
答案是用反向代理。
看过之前几期视频的小伙伴应该知道,之前有宝塔的时候,碰到这个情况,我们会先新建一个站点,然后修改 Nginx 配置文件:
NGINX
|
就可以反向代理的操作(域名访问)了。
很多小伙伴跟着做可以成功,但是可能对反向代理并不是很了解,我们就趁着今天来简单介绍一下。
操作环境
服务器:最好是选 非大陆(香港)的服务器)如果是小白刚开始玩的话,还可以购买 Racknerd 的服务器(地区选美西),最低一年不到 100 块,
系统:Debian 10 或以上。 DD 脚本 非必需 DD,用原来的系统也 OK,之后教程都是用 Debian 或者 Ubuntu 搭建~)
需要一个域名
Docker 环境
什么是代理
首先代理大家都懂 :)
代理就是第三方。
正向代理
你要买国外小 G 家的鞋子,你没有 paypal 和信用卡,买不了,于是你找到了叫小 V 的代购帮你到海外买,小 V 找到海外的卖家小 G,帮你买了鞋子,然后寄回给了你。
这个小 V 就是正向代理。
正向代理的特点是,可以保护访问者的信息。因为小 V 是个职业代购,他在帮你代购鞋子的同时也帮别人代购鞋子,而且他不仅代购鞋子,还代购箱子、家具、电饭煲,卖家小 G 只知道有人买了我的鞋子,我交给了小 V,但并不知道具体是谁买了他家的鞋子。
反向代理
反向代理,顾名思义,正好相反,可以保护卖家的信息。
具体可以看视频。
好了,回来。
没有了宝塔,我们今天用一个更简单的 Docker 项目来完成反向代理的操作。
Nginx Proxy Manager
Nginx proxy manager 是一个很简单的反向代理工具。
官网:https://nginxproxymanager.com/
门槛极低,操作简单,不需要你掌握很复杂的 Nginx 配置知识,只需要几步就能很轻松完成反向代理的设置和 SSL 证书的部署。
it had to be so easy that a monkey could do it.
开始部署
服务器环境:Debian 10(Ubuntu 20.04 也可以)或以上版本
登陆服务器
不建议用 CentOS
选择一款连接 SSH 的软件。
Mac 或者 Linux 用户可以直接用系统自带的终端
(也叫 Terminal
)来登陆服务器。
输入:
BASH
|
如果你没有更改 ssh 的端口,默认就是 22
,当然为了服务器安全,建议你可以换一个别的端口。
添加 SWAP 虚拟内存
注意:VPS 的内存如果过小,建议设置一下 SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!
设置 SWAP 可以用脚本:
BASH
|
选择 18
,然后输入你想要扩容的数值即可。
升级 packages
BASH
|
安装 Docker 环境
安装 Docker(非大陆服务器)
BASH
|
BASH
|
BASH
|
安装 Docker-compose(非大陆服务器)
BASH
|
BASH
|
BASH
|
安装 Docker(国内服务器)
BASH
|
BASH
|
BASH
|
安装 Docker-compose(国内服务器)
BASH
|
修改 Docker 配置(可选)
内容参考:烧饼博客
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):
BASH
|
然后重启 Docker 服务:
BASH
|
安装 Nginx Proxy Manager
创建安装目录
创建一下安装的目录:
BASH
|
这边我们直接用 docker 的方式安装。
BASH
|
英文输入法下,按 i
YAML
|
按一下 esc
,然后 :wq
保存退出,之后,
打开服务器防火墙并访问网页(非必需)
打开防火墙的端口 81
举例,腾讯云打开方法如下:
图中示例填的是 5230
,备注填的是 memos
,这边我们填 81
,示例填 nginxproxymanager
,确定即可(如果你在 docker-compose 文件里换了 82
,这边就需要填 82
,以此类推)
查看端口是否被占用(以 81
为例),输入:
BASH
|
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
BASH
|
运行:
BASH
|
如果端口没有被占用(被占用了就修改一下端口,比如改成 82
,注意 docker 命令行里和防火墙都要改)
运行并访问 Nginx Proxy Manager
最后:
BASH
|
理论上我们就可以输入 http://ip:81
访问了。
默认登陆名和密码:
BASH
|
注意:
1、不知道服务器 IP,可以直接在命令行输入:
curl ip.sb
,会显示当前服务器的 IP。2、遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。
更新 Nginx Proxy Manager
BASH
|
提示:
BASH
|
输入 y
利用 Docker 搭建的应用,更新非常容易~
卸载 Nginx Proxy Manager
BASH
|
可以卸载得很干净。
最后
NPM 的功能还有很多,预计还有两期,一期讲泛域名证书的配置,一期讲安全防护,这次只是简单介绍一下,大家可以发挥钻研精神,自己先研究研究。
有了 NPM,可以统一管理,的确方便了很多,但总觉得还缺少点什么?有没有类似 NPM 这种有 UI 界面的工具,可以让我们直观地看到 Docker 的容器呢?Docker 容器如果也可以统一管理,查看状态就很棒,别急,下期给大家带来!
评论区