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.

35 lines
6.2 KiB

This file contains ambiguous Unicode characters!

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这种程序虽然会占用大量的运算资源但是它的运行优先级很低所以网站运行完全没有影响这样就能合理的运用好这些计算资源了。