聊聊云服务器 篇十:云服务器搭建nginx+zerotier实现内网穿透
如果你有云服务器或者公网IP,那nginx非常值得学习一下。nginx的反向代理也是运维必会的基本技能。我最近在折腾nginx,所以分享一些折腾的感想。
折腾的起因是因为捡垃圾买了几台小主机,在上面部署了一些网络服务比如下载机、爬虫、文件服务器等,充当个人的服务器。
内网搭建的服务如何在广域网访问呢?我之前一直通过zerotier搭建的虚拟局域网解决。但zerotier的局限性很大,就是每个终端都需要安装zerotier客户端挺麻烦的。而且zerotier在国内用又很慢,需要国内的云服务作moon服务,最终买了3年的云服务器。又开始了新的折腾,买了云服务器如果只是为了搭建zerotier moon服务又觉得太浪费了,于是就搭建内网穿透,实现外网访问内网搭建的服务。
因为我倾向把服务都搭建在本地的电脑上(云服务器的空间太小,而且以后肯定续费不起)。数据留在本地,通过云服务器内网传统就可以了。内网穿透用的最多的是frp+nginx的方案,不过我已经搭建了zerotier,所以用现成的zerotier就可以了。只需要安装nginx设置一下反向代理即可。
zerotier的作用是搭建一个虚拟局域网,这样在不同内网的设备可以通过广域网连接,就像在局域网中一样。而nginx则是把具有公网IP的云服务收到的连接请求发送给对应的服务器(小主机)即可,原理如图:
在云服务器上安装niginx
sudo apt install niginx
接下来要配置一下niginx,niginx的配置文件有两个路径,一般是/etc/nginx/下的nginx.conf这是主配置文件。但是一般可以不修改这个文件,而是在/etc/nginx/conf.d/目录去新建一个conf文件(文件名.conf),支持多个conf可以自由命名。我推荐用后面的方法:
sudo vim /etc/nginx/conf.d/default.conf
主要设置一下监听的端口,如果你有域名可以直接监听80和443端口,通过不同的域名跳转到对应的服务器。如果你没有域名,可以直接监听服务对应的端口,这样你访问服务器的指定端口时,nginx会把访问跳转到内网对应的IP和端口:
server {
listen 8090;#监听端口
server_name 名字;
location / {
proxy_pass http://192.168.168.3:8090;#局域网服务的IP地址和端口
}
}
这是我通过云服器在公网访问搭建在红米2手机上安装的的speedtest Docker,通过http://云服务器IP:8090访问
如果你有域名操作起来会更加方便,因为不需要监听这么多端口,可以根据域名进行转发。而且现在新手域名一年也就几块钱,买个搭建一个blog或者做做测试也是可以的。不过国内的域名都必须备案后才能访问,个人名义进行备案手续稍微简单一点点,我前几天就买了一个域名,这几天就在进行备案,后续想搭建个blog什么的。反正数据都架设在本地就当写写学习笔记。
现在云服务器对于新手而言还是很便宜的,2核4G,8M宽带的轻量服务器3年也才200多,一个域名3年也就几十块。我一般推荐大学生去了解了解,不想大学天天打游戏,其实折腾折腾学点互联网技能也还挺不错的。
腾讯云的活动地址https://cloud.tencent.com/act/new
触类旁通,有了这个其实可以有很多的玩法,比如在不同的主机上搭建不同的服务,通过云服务器就可以在公网访问。你可以搭建个人的影音服务器(8M宽带估计只能支持720p解码),可以搭建一个小的文件服务器,你可以把服务搭建到不同主机上,只需要保持一台低功耗的设备在线即可。必要时可以设置局域网开机功能,开启对应的服务器。对于工作离不开电脑,资料比较多的人而言,可以随时远程拿资料,还是挺好的一件事。
其实折腾并不是要把简单的事情弄复杂去浪费自己的时间,折腾是尽量让自己的时间变得有意义,这样你才会发现真正的乐趣。
作者声明本文存在利益相关性,请大家尊重作者及分享的内容,友善沟通,理性决策~
![](https://res.smzdm.com/pc/pc_shequ/dist/img/the-end.png)