利用frp内网穿透工具给阿里云服务器减压
背景
我在实验室的机器配置较高,内存有8G,而阿里云服务器的内存只有2G。之前校园网里的博客和公网的博客是分别在实验室机器和阿里云服务器上开了两个docker,都分别绑定了机器上的文件,然后这这些文件通过github实现同步。但是它不会自动同步,需要手动在一台机器上docker push和另一台机器上docker pull。此外,同时开两个docker对阿里云服务器的性能有些浪费,毕竟2G内存是拙荆有点捉襟见肘了(其实貌似也没有占多少内存2333
解决方案
利用frp这款简洁又强大的内网穿透工具,利用某种机制实现内网机器的服务可以被公网访问到。
其具体实现的原理大概是,公网机器运行frps作为服务端,内网机器运行frpc作为客户端,两者进行某种连接。当有公网请求时,公网就会把请求转发到内网机器上,内网机器发送相应后,再发送回公网机器,公网机器再返回给用户。相当于利用公网机器做了一个跳板。
同时我在frp客户端也就是我的实验室机器上配置了多个web服务。具体配置文件如下。
-
当用户访问blog二级域名时,会被转发到我实验室机器的80端口,实现博客页面的展示。
-
访问cloud二级域名时,会被转发到我运行在8080端口的nextcloud个人网盘服务。
-
访问docs二级域名时,会被转发到3000端口的codimd服务。
-
而值得注意的是,这些二级域名实际上都是绑的一个ip,那就是我阿里云服务器的ip。
二级域名让用户更清楚的知道自己要访问的是什么服务,完成了类似nginx反向代理的操作,而我这里用到的只是frp。
同时利用nohup命令让frp在后台运行,就能够持续的实现内网穿透了。
1 |
|
战术总结
利用frp技术,我的博客只需要在实验室机器上运行docker就行,做到了一处修改,两处同步更新,还减少了服务器的负担。此外利用frp还实现了反向代理的操作,在这里向作者送上崇高的敬意!