You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
---
layout: post
title: 如何建立一个校园内部网站
tags: [网站, 校园]
---
其实我感觉大学生活也挺好的。<!--more-->
# 起因
去年我进入大学后加入了一个专门研究云计算以及网络(名义上)的社团,不过那时候我才是大一新生,加入后没有权限。到了第二年,我成功的进入了管理层,这次我就可以好好的看看这个社团有什么有意思的东西了。
首先, 社团内有专属于自己的网络, 社团办公室内有一个交换机是连接所在教学楼的网络的。另外还有一个树莓派, 看起来好像是一次都没有用过, 系统也是全新的RPiOS。
除此之外,社团内有一台机架式服务器,看起来好像好长时间没有用了,第一次启动直接报内存错误,我只好把内存条拆出来擦了擦才能正常开机。
我以前觉得服务器应该配置相当高, 不来个双路TR3990X, 再整个一堆上TiB的内存根本不能称作服务器。不过这台垃圾服务器改变了我的想法。这是一台主板型号为S5500HCV的服务器, 有双路CPU和4条4GiB的内存条, 硬盘500GiB还是机械的。仔细看了看这双路的CPU怎么加起来才8个核心, 而且还不支持超线程? 这配置还不如我新买的笔记本电脑, 然后大小还特别大, 比一般的机箱大得多, 而且开机速度又慢, 风扇还不支持调速, 真是有够垃圾的。
不过垃圾就垃圾吧, 毕竟还是个服务器, 最起码还能支持24/7工作制, 365天全年不断电应该是可以保证的。既然有了这样的资源, 我觉得应该搞点什么在服务器上面, 不然这么大的东西闲置也挺浪费的。
# 服务器的折腾之旅
最开始我是打算装ESXi的, 因为自从有Hyper-V之后我基本上就没用过VMWare了, 而且这俩还是互斥的。以前看到ESXi之后挺想在我的Hyper-V虚拟机里装一个, 可惜ESXi这个系统实在是太垃圾, 安装必须要网卡驱动然后它支持的驱动还特别少, 所以这次有了真正的服务器自然是想试一下装个ESXi玩玩。
首先我装的是ESXi7, 打开后结果又是没有显卡驱动, 所以我只好下ESXi6试试看, 打开之后确实可以装了, 但是装好之后却没办法引导了, 这就很奇怪, 所以我只好放弃安装ESXi的想法。
之后我就想着要不然就正常的安个服务器操作系统吧, Ubuntu用的多了, 干脆安个CentOS好了。不过安CentOS有不少坑, 因为我安装没办法用光盘装, 一般都是先录到U盘里再装, 但是不知道为啥, CentOS的引导是用的是卷标名, 然后U盘只能用11位的卷标名, 安装程序就没法引导。
除了这个坑之外还有一个就是8和8-stream版本的不同。因为直接把整个CentOS下下来很麻烦我就直接下的是网络安装版的。安装程序我下的是8-stream的, 但是我当时不知道用哪个源, 结果搞成了8的源, 装到一半就出错退出了, 很难受, 之后仔细检查才发现原来是版本搞错了。
安好之后就是如何管理服务器的问题了, 虽然直接用SSH或者用自带的Cockpit也挺不错, 显得很专业, 但是我觉得麻烦就直接用了某删库塔面板了, 反正是在内网里也没谁会攻击, 而且安装配置确实方便, 想做的事情一键就能搞定。
虽然这个服务器挺垃圾, 但是至少要比一般的云服务器强, 同配置的云服务器要不少钱我肯定是不会租当然也没用过。所以像什么Gitlab之类的我可以随便装, 反正有16GiB内存也不担心。
另外就是网页服务器的环境了,面板确实方便,轻轻松松就能装一个博客、论坛加网盘了。既然网站建好了,就要考虑如何访问的问题了。
# 如何公开自建服务器
正常情况下我们用的网络都是经过路由器的, 然后就会有NAT就没法从外面访问里面的服务。一般情况下解决这个问题就是用内网穿透, 比如frp之类的。不过我们的网站不太适合暴露到外网上, 毕竟开了一大堆服务, 又没有防火墙, 密码还超级简单, 万一服务器被外面的人攻破了学校内网估计也得凉。
不能暴露在外网的话至少学校内网能访问也不错啊, 不过服务器前面连了一个路由器, 经过了一次转换, 然后就没办法在学校内访问了。还好路由器可以设置DMZ主机, 把服务器的内部IP设成静态的然后开DMZ主机就能解决这个问题了, 另外路由器连接的校园内网也没有NAT, 所以在校内就可以直接运行了。
# 给网站加个域名
虽然通过上面的方法可以让大家访问服务器, 但是有一个问题就是动态IP的问题。我可以改在社团的路由器, 但是不能改学校的交换机, 所以IP地址没办法固定, 虽然也可以直接在服务器上改成固定IP, 但是我担心这样会造成IP冲突之类的问题。这种情况就很麻烦, 因为好多网站内链都是带站点地址的URL, 我建的网站都是通过引擎建的, 改又不好改, 这就很麻烦。
这个问题比较好的解决方案就是使用域名, 域名解析的结果不一定必须是一个外网地址, 内网地址同样可以解析。这样我回头可以买个域名然后解析, 如果发生断电之类的问题导致IP改变我就可以直接改一次就行了。DDNS也是个不错的解决方案, 不过这种事发生次数不多所以就懒得搞了。
# 合理利用资源
虽然建了网站, 但是平时也没有人访问……而且就算有人访问服务器运行网站服务程序基本上没什么压力, 这样服务器运行基本上就是空转了。既然我打算让它持续运行肯定不能让它空转, 我肯定要搞点啥利用好这个运算资源。挖矿是个不错的选择, 但是我不屑于去做, 不如搞点为人类发展做出贡献的事情, 像World Community Grid这样的志愿计算项目就挺不错。
于是我就在上面安装了BOINC, 这种程序虽然会占用大量的运算资源但是它的运行优先级很低, 所以网站运行完全没有影响, 这样就能合理的运用好这些计算资源了。