程志辉博客 - 一个伪文艺青年
贵在坚持,难在坚持,成在坚持!
程志辉

摘莲蓬

从小在城市长大,缺少了很多常识,技能和体验

跑步的朋友们相约5点起床摘莲蓬,我无知的问了一句:莲蓬是长在哪里的……

只知道莲藕在泥土里,莲蓬真的不知道在哪里哇!!!!

本以为很轻松的事,却发现并不那么简单

控制船前行的轨迹穿过荷花阵,还得挑选出成熟的莲蓬~

毕升大峡谷漂流

感觉自己好蠢啊,头一天朋友们还打电话让我看看票价。我说199,不用急,第二天去了买也行……

结果第二天到达目的地,发现网上已经不能定当天的票……

只有现场购票269元,一行4个人,瞬间感觉亏了一顿大餐哇~!

第一次漂流没有什么经验,穿着短裤短袖就出发了

进场前找朋友借了一个外套,穿着嫌热甚至有点想脱……

整个体验还不错,虽说是人工修的滑道,但也十分的险~

全程下来由于身上早已湿透,体验很凉,便觉得没必要做防晒措施

回家洗澡发现小腿由于没有做防晒措施,已经被晒的通红,碰上去疼死了!!!

跑步配速计算器

老早就想写一个了,困于技术问题一直拖至。前阵子世赛有一个板块需要写一个日历,因此对JS时间这一块熟悉了很多。趁热打铁就完成了拖了很久很久的计划!!!

在线访问地址跑步配速表

可惜的是,以前热爱的跑步,如今几个月不跑,甚至不愿出门跑步……(得慢慢捡起来)

AIMII——Istudy

上篇博文说道,在家里的效率实在太低,与阿强一拍即合,整了一个学习网站,记录每天都干了些啥。其实有想法的第二天就已经全部写好了,只是还有一些细节需要时间去慢慢完善。

目前最大的问题应该是备案问题!所以暂时我用了临时的一个域名用于访问和记录

在线访问地址:AIMII

备案也真的是坎坷,正好赶上了阿里云备案的改版。如今阿里云备案已经不需要自己下载核验单以及幕布拍照了,拿起他们的APP,按照操作,没一会儿就可以提交管局。

第一次提交管局很顺利,3天后管局驳回,反馈意见:检验单有问题!

咨询了阿里云备案专员,他们的答复是:阿里云备案现在已经不需要下载检验单,您的问题我们已经有专员在和管局那边沟通,请您在信息同步后,再次提交备案!

第二次提交管局还算顺利,上午12点提交到管局,现在新规你得发送手机验证码到管局,我打开湖北管局的官网,发现504无法访问……也就意味着验证码这个操作24小时内没有提交到管局的话,这个备案也是无法完成的。下午3点,管局发来短信:您的备案信息已经湖北管局审核,不完全符合备案要求,现已被退回!

第N次,等待中…………

第二次提交4天后成功备案!

在家学习老走神

最近在家里学习,发现自己总是不经意的走神。下午很认真的分析了一下走神原因。简单的解释,书桌旁边有个床。

历史解释:小时候爸爸总是监督我,让我一个人在房里,不能做别的事情,只能在书桌前坐着,不想学习,那就看看窗外,发呆发呆……接着发呆……(也许是从小留的坏习惯吧……所以很多时候没学好,也没玩好,但是旁人看你,你总是很认真的样子)

所以上面的AIMII我也不会给自己定什么要求,每天要做些啥什么的。就简简单单的记录今天我干了些什么……

自己能看的过去的也就是每天早上的APP100个单词,和实体单词书每天下午的60个单词

按照现在的进度APP复习单词加上实体书背单词月底刚好能够背完,加油啦~

2019年08月10日
程志辉

感觉每天在家划水太严重了,晚上跟阿强(男)聊天后决定拼个伴,搞个网站记录每天都干了些啥……(希望这样自己能做点事情吧,不然自己都看不下去了!!!)

2019年08月02日
程志辉

前言

放假回家也差不多快一个月了,每天每天呆在家,划水划水划水,没啥可写的,所以给博客写了一个一句话的样式,也就是上一篇博文那样,不过还是得总结一下,留下一段记忆。(手残的我上午备份数据的时候,丢掉了好多照片……)

东区的回忆

大学的前两年,印象最深刻的还得数图书馆,我与图书馆的故事之前扯到过,这篇就不累赘了。在这里得恭喜身边的几位学长学姐基本上都成功上岸了。图书馆的老爷子总会在饭点询问志辉吃饭了没有?时不时地带来一些乐趣。

学校通知下学期开始东校区就不属于学校了,我们专业在七月初课都结完了,也就代表着可以回家过暑假。还记得老爷子那会儿说了句:“在学校多呆几天吧,这么好的环境,趁年轻好好学习。回家肯定又管不住自己了”。

于是在东区又呆了接近一周,最后学校食堂商店基本都撤走了,连图书馆也开始了撤退工作,没办法只好选择回家。

世赛拿奖

其实也就是一个武汉的选拔赛啦,拿了一个二等奖(自己太菜)。最为可惜的是距离一等奖总分差一分,听指导老师说很大因素是因为抽签的工位号我在第一位,评判作品以我为为参照标准,所以分数受了一些影响(还是太菜……)

二十岁

不知不觉到了二十岁,偶尔发现我们生日是同一天,于是每年都会在生日的那天跑一个18km,19km,7.23km。今天真的太热了哇……不过也算是跑了,哈哈哈哈哈。

愿做一个有心人,眼光放远,遇事顺利。

2019年08月02日
程志辉

时间一天天在过,却忘记了如何去记录生活。暑假在家早上练车,下午学习,去了几次市图书馆感觉效率相比学校低多了……(妈妈说今天是我农历生日,祝自己生日快乐~)

2019年07月13日
程志辉

不得不说时间过得真的很快!!!上次回家是端午节,也是高考日。在家呆了一晚上+一天实在是待不下去,决定回学校图书馆自闭。总结了一下,大概是几十年没有认真做过作业的书桌还有温馨的床和爸妈的啤酒小龙虾吧,实在是让人无法学习。

最近一直在准备这周六比赛的世界技能大赛武汉选拔赛,自己的实力自己肯定还是有数的,老师赋予的期望太大,我真的有些慌……JS面向对象/面向过程实施起来我简直菜的扣jio。自己写的代码恶心到自己都不想看,然后开始看书……

前几天结束了准备多时的四级。好像也没怎么准备,每天背单词改为2天3天背一次,经常写代码给忘记了。试卷也没怎么刷,考试听力两耳懵逼,几篇阅读题也都没怎么看懂,不过考场老师很温柔,空调很舒服,好歹在大学体验了一次四级考试,心里默念11月再战!

四级是在自己的主校区考的,一大早跟学姐们一起打车去的主校区。很少出校门,脑海里出现几次的献血计划终于可以去实现以下了,顺带去派出所取自己两个月申请换领的身份证(时间过得好快啊)~

四级考完就跑向了不远的献血点,兴奋的去献血,掏出手臂的一瞬间就怂了……

不过体验还是不错的,200-400 ML选择了一个中间值。针头很有些粗,但是抽的时候没啥感觉,电视剧里的那种情节都是假的啊,哪里有那么可怕。负责人说现在都是无痛针孔。

随后跟爸妈汇报我去献血了,他们一个个都不是很支持,甚至不希望我这样做,微信连续给我打了几个电话,还有N个语音我都懒得听……在互联网上也看了不少关于无偿献血的说法。管他呢,无偿献血本来就是不求回报,何况抽完还让自己选了一箱牛奶,而且最近也没有出现因为献血出现的不良反应。体验一下,没啥问题,后面有机会我仍会去尝试~!

社会我彪郭~PHP是世界上最好的语言。纪念一下马上结课了,后面怕是没机会见面了哇~还有浩哥,江湖再见~

正则表达式一直让我恶心,特别是有转义的时候,整个人都会不好,不过现在通透了很多很多~一直打算毕业后去培训机构折腾一下子,不过彪哥是培训机构出来的,让我千万不要去,所以决定蹭还有大把的时间慢慢的啃吧,有计划的啃吧~

世界读书日屯了不少书都没时间看,带了几本到图书馆,也没有时间翻阅。还有马上的618准备屯几本书,后来想想算了吧算了吧,眼前的看完再说。Kindle确实是个好东西,居家必备。压泡面,看书都很好。付费的会员服务也续费了两年,一直没有中断,不过最近好久没碰了。

纸质书电子书,多数还是喜欢纸质书,捏起来有感觉。昨天白天备世赛写了一整天代码,各种BUG,还有N个功能没有实现。看着乱糟糟的代码,自己差点看吐……

晚上决定放松一下,打死不写代码,于是开始看《人间失格》。书名叫这个,不过《人间失格》片段只占书的一部分,其他部分都是作者写的其他内容。分享几个脑海里还记得有趣片段吧。

人间失格小片段

少年叶藏从小就很会讨好人。有着取悦他人的本领,不管自己是否真的喜欢一件事物,总能向外人表现出喜欢的样子。爸爸经常出差会带一些礼物给几个儿子,并且会在笔记本记下孩子们想要什么,方便下次出差带礼物。当问到叶藏想要什么东西的时候,叶藏没有回答,因为他觉得没有什么想要的,也没有什么感兴趣的东西。于是父亲问他想不想要现在流行的舞狮面具,他仍然没有回答,内心想着都很无聊,舞狮面具甚至还不如带几本书,比书还枯燥无味。由于没有吭声,惹怒了父亲。

晚上叶藏思考父亲为何会问自己是否想要舞狮面具。分析了下,认为父亲看自己没有回答,想给自己一个舞狮面具作为礼物 ,但自己没有啃声,否决了父亲的好意。于是晚上决定前往客厅在笔记本上添加舞狮面具。

有一次自己经过父亲房间,发现父亲和母亲在讨论。父亲说无意间看到笔记本上多了一条舞狮面具,但是自己没有写过,字迹也不像是自己的,于是猜测是叶藏,明明心里很想要舞狮面具,但是由于害羞一直不啃声。

阅读感悟

对比看了看自己,真的完全两个人啊。大家好像总是喜欢去做一些表面工作,但是我真的不大喜欢。外婆生日前夕,妈妈私信让我向外婆说声生日快乐,我懒得去做,不想去做。前阵子妈妈过生日,表弟提醒了下,让我去跟妈妈说个生日快乐,我有写不想去说,当然更多的是说不出口,毕竟很多年了,没有去做过。还有父亲节母亲节各种节日,朋友圈的祝福,我懒得做。

还记得表弟提醒我妈妈生日的时候,我承认真的不知道,从小到大就记住了爸爸的生日。这点确实是我的问题。不过当时我给表弟的回复是:不想去祝妈妈生日快乐,自己好好学,将来赚了钱,少给她添乱子,就是最好的祝福了。还有妈妈提醒让我给外婆祝福也是一样,不想去做太多表面工作,平时对外婆好比什么都好!

行走江湖,路漫漫

一晃又到了月末,跟学长学姐们图书馆自闭也逐渐到了尽头。这周比赛周,考试周。周末我将参加世赛,他们将参与专升本考试,预祝他们成功上岸~还有图书馆的老爷子,真的很温和啊,经常义务给我们开馆到10点,还有节假日的义务开馆,马上换校区了,江湖再见~

2019年06月17日
  • 豆豆 “PHP是世界上最好的语言”哈哈哈,赞同
  • 程志辉 作者 回复 豆豆 SEO做的不错……
  • wys 最喜欢这一句“自己写的代码恶心到自己都不想看,然后开始看书……”。咱们大多差不多,想得多,做得少,想得好,做的不如意。加油吧,挖掘书里的黄金宝藏。昨天我也看了几页《论自由》。
  • 子午物联网 是本好书,不过,失格,是个问题
  • 青涂 学校,对我来说是一段永远回不去的路。
  • 林三 伪青看书,不错不错呢,我连伪青都不是。
  • 查看更多...
程志辉

很久很久之前去了趟动物园,然后就销声匿迹了。这次决定开车前往幼儿园。得更个博了,记录一下生活也好啊!!!

上周六Linux服务器的课程结课,任课老师是其他学校的老师,在我们学校任课。回顾这学期,每趟课都会写个文档对上课内容进行一个总结,现在看起笔记来还是挺有感触的。后面也许真的就江湖再见了…………最后再记录一次,浩哥牛逼~!

图书馆的小美好

来图书馆自闭这件事,准确点算应该是持续了快一年了。最初在卞舟日记 看到一位学姐每天呆在图书馆,做自己喜欢的事。经常在图书馆练习毛笔字,周边同学经常围观最初自己觉得有些不适应,后面时间长了也就习惯了。还经常看到学姐在博客里面分享一些读书的心得体会,不过现在文章好像都没了。这会儿她应该在考研,或者工作?不得不说她是我来图书馆最初最初的引导。

那会儿我还在上大一,说懒懒散散也成,不过负责运营学校微博微信公号还算是做了些事情。尝试过去几次图书馆,每次都没有看啥书,没坐一会儿就睡意十足。当然也不是为了去看书,就想傻傻的坐着,让自己静一静。后来的后来还是败下,不愿意尝试,也不习惯一个人走出寝室,走出舒适区,换一种自己没有尝试的生活。

大一临近结束,借着高中瞎折腾学习到的一些技术,在大一的专业课中给专职老师们留下了深刻的印象。老师通知我做好准备,暑假留在学校准备省赛(大一跟着学长见世面,今年自己上战场)。暑假在学校呆了一个月,认识了一些学长。每天早上8点左右起床吃饭去实训室,中午午休,下午继续。晚上结伴在操场散步持续到了暑假结束。准确来说,暑假的一个月培养了我自学的能力和静坐一天的能力!

开学后抱着尝试的态度询问学长,要不要一起去读书馆自闭,一起延续暑假的状态。就这样延续了一个月,后来陆陆续续图书馆小分队又只剩下我一个人了,不过好在前面有学长陪我去图书馆,以至于后来我也能够去尝试一个人去图书馆,并且坚持到了现在。(经常跟学长交流,学长说当初如果不是我问他去不去图书馆,也许他会一直呆在寝室折腾,哈哈哈哈哈,最后的最后恭喜学长喜提华为IE工程师证书)

每天一个人走在图书馆这段路,都会忍不住拿出手机拍一张,然后心里念到哇~好美哇~!!!

经常在图书馆门口念叨,今天天气不错啊,周末要是不下雨的话,就出去溜达~然后一晃一年了,马上又得放暑假了……

100天倒计时

一个自己都忘记结束时间的倒计时.....

之前用APP开始了一个100天的倒计时,不过很少去打开这个APP,但是一直都知道有这会儿事,倒计时100天,看看自己能做些什么事情。就像高考倒计时一样,给自己一些压力,有限的时间去做更多的事情~!

能拿出手的就是为自己博客写了一款主题GouGe02 给学校新媒体写了一个网站长职校园 还有前阵子一堆伪技术博文。

图书馆里还有一群准备专升本的学长,每天跟着他们一起保命(吃饭),祝他们能够顺利上岸,也希望自己一年后能够顺利上岸。

停电的一天

图书馆在一楼,光线不好,开馆必须有电开灯。停电的一大早还是不甘心,还去看看。因为头天晚上过了6.1,第二天不能再出去溜达了。所以决定修身养性在草丛上呆一天……

中午在草丛上睡了个午觉还算舒服,晚上在操场上跑了会儿步,不过手机电量不允许开运动APP记录,总体来说没电的一天还是很美好的~停电唯一的不足是宿舍没水,需要电泵带上高楼层,其他的其他,其实不用现代化设备,也不会死啊。

最近更文不大及时,小宇哥也好久没来催我更博了…………

2019年06月04日
程志辉

学习原因

学好数据库是有必要的,一个公司最重要的就是数据,所以有必要进行一个学习!

去年学习开了这门课程,很荣幸今年全部都还给老师了……

层级关系

MySQL=>数据库=>数据表=>存的数据

数据库操作

SHOW DATABAES;    //查询所有数据库
CREATE DATABASE 库名 DEFAULT CHARSET utf8;    //创建数据库并设置编码为uft8
ALTER DATABASE 库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;    //修改数据库编码
DROP DATABASE 库名;    //删除数据库
USE 库名;    //使用数据库
SHOW CREATE DATABASE 库名;    //查看数据库的结构

数据表操作

数据表常用类型:INT(整型),CHAR(固定长度字符串),VARCHAR(可变长度字符串),FLOAT(浮点型),DATE(日期时间类型)

数据库常用约束:NOT NULL(非空),PRIMARY(主键),AUTO_INCREMENT(自增,数字自动加1),UNIQUE(唯一性)

SHOW TABLES;    //显示数据库中的表
CREATE TABLE 表名(
    序号    INT PRIMARY KEY AUTO_INCREMENT,
    学号    CHAR(8)    UNIQUE NOT NULL,
    姓名    VARCHAR(30) NOT NULL,
    性别    CHAR(2) NOT NULL
);    //创建数据表
SHOW CREATE TABLE 表名;    //查看数据表构造
DESC 表名;    //查看数据表结构
ALTER TABLE 表名 DROP 字段;    //删除数据表中的字段
ALTER TABLE 表名 MODIFY 字段 VARCHAR(50);    //修改字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
DROP TABLE 表名;    //删除数据表

数据表中的数据操作

INSERT INTO 表名(字段1,字段2)VALUES('值1','值2');    //增加数据
UPDATE 表名 SET 字段名='值' WHERE 字段名 = '值';    //修改数据
DELETE FROM 表名 WHERE 字段名='值';    //删除数据
SELECT * FROM 字段名;    //查找数据

常见的一些条件语句

去重:SELECT DISTINCT 字段 FROM 表名 WHERE 条件;

逻辑条件:AND OR

比较条件:<,<=,>,>=,<>,between value1 and value2;

判断null:is null

判断空字符串:="" / <>""

模糊条件:like

 %:替换任意长度字符

 _:替换单个字符

分页查询,limit 起始行,查询行数

排序:order by 字段 asc/desc

 asc:升序
 desc:降序

分组:group by 字段

创建数据表练习

创建一个名称为grade的数据表,且添加数据约束条件
具体设置:

序号 :整型,主键,其值自动增加

学号 :固定长度字符串,长度为8,具有唯一性,且为非空

姓名 :可度长度字符串,最长30个字符,非空

性别 :固定长度字符串,长度为2,非空字段

JavaScript :为单精度浮点型,缺省为空

PHP编程 :为单精度浮点型,缺省为空

MySQL :为单精度浮点型,缺省为空

网络互联设备配置:为单精度浮点型,缺省为空

服务器安装与配置:为单精度浮点型,缺省为空

CREATE TABLE grade(
     序号 INT PRIMARY KEY AUTO_INCREMENT,
     学号 CHAR(8) UNIQUE NOT NULL,
     姓名 VARCHAR(30) NOT NULL,
     性别 CHAR(2) NOT NULL,
     JavaScript FLOAT NULL,
     PHP编程 FLOAT NULL,
     MySQL FLOAT NULL,
     网络互联设备配置 FLOAT NULL,
     服务器安装与配置 FLOAT NULL
);

数据库增删改查小练习

数据库名为user

字段名有:username,nickname,password,email ,logintime,createtime

查询

1.请查出2019年5月1号到2019年5月10号的登录信息

SELECT * FROM user WHERE logintime BETWEEN '20190501' TO '20190520';

2.查询出username,email,logintime字段的所有信息

SELECT username,email,logintime FROM user;

3.查询出username为root,nickname为root的相关信息

SELECT * FROM user WHERE username='root' AND nickname='root';

修改

将username为root数据的nickname修改为admin

UPDATE user SET nickname='admin' WHERE 'username'='root';

添加

添加一条username为root,password为123456的数据

INSERT user(username,password)VALUES('root','123456')

删除

删除username为root的数据

DELETE FROM user WHERE username='root';

总结一下

WHERE开头的条件语句一般都是在最后面写,数据库的层次结构记清楚,着重记忆对数据的增删改查操作!

2019年05月21日
程志辉

什么是共享存储?

共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。

简单点:多台WEB服务器本地的内容都存在放在一台专门用来储存的服务器上。

什么是负载均衡?

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行。

简单点:用户通过URL进行访问网站,第一次访问到A服务器上,第二次访问到B服务器上,这样就称为负载均衡。

需要了解的知识点

如何实现WEB服务器的内容一致?

多台WEB服务器同时指向同一台用于数据存储的服务器。通过文件共享的方式解决内容一致的问题。例如:NFS服务。这样不管是哪一台WEB服务器进行读写操作,都能够进行内容的一个同步。

如何实现负载均衡?

利用DNS解析,设置两个地址指向www。DNS轮循解析,会将相同的域名解析到不同IP的WEB服务器,从而实现负载均衡。

当用户通过URL访问网站,DNS会进行工作,解析到不同的IP地址,但是不同IP地址的WEB服务器由于储存的内容都是一致的,用户看不出区别。网站访问量大了,管理员只需要通过增加WEB服务器,将WEB服务器内容放在专门用于存储的服务器上,然后添加DNS解析就可以解决问题。

当然这是一个最基础,也是最老的一种负载均衡解决方案,仅供新手学习,实验。

基于共享储存的负载均衡网站架构缺点?

理论上WEB服务器的内容都是放在专门用于存储的服务器上,所以可以无限的去增加WEB服务器,来解决流量大的问题。但是当需要设置50台WEB服务器?1000台WEB服务器?或者是更多的时候,DNS你得写很多条,这个算是一个缺点。

什么是跳板机(堡垒机)?

本次实验文档不会进行演示,但是你得了解学习一下!跳板机是通过跳板(软件)来操作远程设备的。一个公司最重要的内容就是数据,这次我们的架构,内容都是放在一台专门用于存储的服务器上,如果外来者可以直接在存储服务器上进行操作,那安全性就极低,极不安全!但是如果增加一个跳板机,那安全性就能够增加很多!

什么是LVS(Linux 虚拟服务器)?

本次试验也不会进行演示,但是你得了解学习一下!使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.很好的可伸缩性(Scalability)很好的可靠性(Reliability)很好的可管理性(Manageability)。

试验环境

VMware 、Red Hat Enterprise Linux 6、WIndows XP

实验拓扑图

Node1,Node2有两块网卡,均作为WEB服务器且为NFS服务器(让Node3存储服务器向WEB服务器提供内容),由于环境有限,Node1在充当WEB服务器的同时也充当DHCP服务,为物理机(客户机)提供IP地址。Node2在充当WEB服务器的同时也充当DNS,为物理机(客户机)提供域名解析,实现负载均衡。

Node3就是存储服务器了,WEB服务器上的内容实际上都是来源于它,它作为NFS服务器,为WEB服务器提供内容。从而实现共享储存,可读可写,内容永远同步且一致!

值得注意的是,黄色圈为192.168.142.0网段(内部网络,局域网)。红色圈为192.168.42.0网段(外部网络,互联网)。有网络基础的话你就知道这两个网络通过交换机是无法互相通信的。所以我们让Node1,Node2有两块网卡。192.168.42.0网段的网卡对外提供服务,你可以理解为互联网。192.168.142.0网络对内提供服务,你可以理解为局域网,且主要用于NFS文件传输,获取Node3服务器上的内容。

假如Node1最大访问量为1000,Node2也为1000,两台WEB服务器都在向Node3访问,那Node3的访问量岂不是2000,该卡顿的还是得卡顿,该崩溃的还是得崩溃?

解释:Node1,Node2在与Node3进行文件传输是用的是同一网络,同一个局域网内传输内容,损耗可以忽略不计。

项目配置要求

某公司新购三台服务器,服务器上均已安装Linux操作系统,现要求搭建基于共享存储的负载均衡网站。项目配置要求如下:

一、利用node1完成DHCP服务搭建,确保可以为“192.168.42.0”网络中的客户端主机(物理机)动态配置主机IP信息。服务配置要求为:

地址范围可满足100台客户端需要;

1)DNS服务器地址为192.168.42.2;

2)域名为czh.com;

3)网关为192.168.42.254;

4)广播地址为192.168.42.255;

5)默认租约时间为12小时;

6)最大租约时间为24小时。

二、利用node2完成DNS服务搭建,可实现对czh.com域和czh.net域中的WEB服务器实现正向解析。服务配置要求为:

1)仅在192.168.42.2接口上提供DNS名称解析服务。

2)czh.com域资源记录

3)czh.net域资源记录

三、利用node3完成NFS服务搭建,可实现为WEB服务器提供共享存储空间及网站数据文件。服务配置要求为:

1)共享/webdir/czh.com目录,使之成为czh.com域对应网站的主目录,仅192.168.142.0网段主机可访问,访问权限均为可读可写;

2)共享/webdir/czh.net目录,使之成为czh.net域对应网站的主目录,仅192.168.142.0网段主机可访问,访问权限均为可读可写。

四、利用node1和node2完成WEB服务搭建,可实现客户端对网站www.czh.com和www.czh.net的浏览。服务配置要求为:

1)创建基于域名的虚拟主机;

2)域名为www.czh.com的虚拟主机对应的主目录为/var/www/html/czh.com,挂载共享目录中对应的目录,创建首页文件index.html,内容为“Welcome to www.czh.com”

3)域名为www.czh.net的虚拟主机对应的主目录为/var/www/html/czh.net,挂载共享目录中对应的目录,创建首页文件index.html,内容为“Welcome to www.czh.net”。

4)不同的虚拟主机对应的主目录不同,首页文件的内容也不同。

这么多内容确实都有点大,但是把它拆解为DHCP服务DNS服务WEB服务NFS服务,你会舒服很多!

由于内容过多,不会过多的贴图,很多步骤会省略,不同的地方欢迎留言板提出,或者访问上面4个服务的详细学习文档进行学习~!

初始化配置

1.Linux主机需要修改正确网卡标识

2.Linux主机需要修改主机名

3.Linux主机需要关闭和禁用防火墙

4.物理机需要关闭防火墙

5.Linux主机需要禁用Selinux

6.Linux服务器端均需要配置本地YUM源仓库

7.Linux主机初始化配置完成后需要确保各直连网段可连通

初始化配置不进行过多演示。需要用到的几个服务,如果Linux主机上没有则需要配置YUM源仓库。为了方便实验,需要关闭防火墙,禁用Selinux。修改主机名,为了见名知义,快速知道是哪一台设备!网卡相关配置设置完后也得进行测试同网段是否能够正确通信。

如果你的设备配置不够高,建议将三台Linux主机的运行内存设置为512M,同时VMware自带DHCP服务,所以你得记得把DHCP自动获取给关闭掉!否则WinXP物理机(客户机)将无法正确的获取到IP地址。

Node1初始化配置(部分)

# vim /etc/sysconfig/network    //修改主机名
# vim /etc/sysconfig/network-scripts/ifcfg-eth0    //修改第一块网卡相关信息

# cp /etc/sysconfig/network-scripts/ifcfg-eth0    /etc/sysconfig/network-scripts/ifcfg-eth1
//==========复制第一块网卡配置信息并建立第二块网卡ifcfg-eth1信息
# vim /etc/sysconfig/network-scripts/ifcfg-eth1        //修改第二块网卡相关信息

DEVICE后面对于的这个名字得和你复制后新建的文件名一直如ifcfg-eth1你就得设置eth1,同时记得修改IP地址,Node1和Node2都是两块网卡,且网络均不一致!

# rm /etc/udev/rules.d/70-persistent-net.rules

由于是克隆出来的机器,所以我们得删除上面这个文件来保证网卡名是正确的

我只演示了一部分,所以Node1还有一些你得自己去配置,且Node2,Node3你也得去配置!

查看Node1,Node2,Node3初始化配置

经测试,Node1,Node2,Node3主机名,网卡相关信息,关闭防火墙,禁用Selinux均已配置成功,且能够互相通信。YUM源没有进行测试,你可以通过下面的命令进行测试一下。如果没有配置后面安装相关服务软件包的时候你会很头疼!

# yum repolist

由于我在Linux——DHCP服务中将初始化都进行过讲解,所以本地文档不进行过多演示。只演示了几个相对重要的部分。Node3只有一块网卡,只需要配置ifcfg-eth0就好了,不需要去复制一个ifcfg-eth1文件。最最最重要的是VMware自带的DHCP功能你得关闭掉,如何关闭,我在DHCP服务中的开头也进行讲解了。

Node1配置DHCP服务

# rpm -qa | grep dhcp    //查看是否安装
# yum -y install dhcp        //没有安装就安装一下

# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf     //复制模板配置文件
# vim /etc/dhcp/dhcpd.conf    //修改dhcp配置文件
# cat /etc/dhcp/dhcpd.conf    //修改完后直接查看

我这里以及配置好了,且将不必要的内容全部删除掉了,所以直接查看,大家可以以我这个文件作为参考,全部都是按照任务需求来配置的。满足100台客户机需要。DNS服务器地址为192.168.42.2;域名为czh.com;网关为192.168.42.254;广播地址为192.168.42.255;默认租约时间为12小时;最大租约时间为24小时。

# service dhcpd start    //启动DHCP服务

最好的检测就是去WinXP物理机(客户机)上测试一下,就知道DHCP是否配置成功!

# ipconfig /all                //物理机(客户机)上

检测说明,DHCP服务器配置成功!

最后的最后,不要忘记将Node1上的DHCP服务设置为开机自启!

# chkconfig dhcpd on    //将DHCP设置为开机自启
# chkconfig --list dhcpd    //重点关注3和5是否为关闭

Node2配置DNS服务

# rpm -qa | grep bind    //查看是否安装
# yum -y install bind        //没有安装就安装一下

修改主配置文件

# vim /etc/named.conf     //修改主配置文件
# grep -v "//" /etc/named.conf    | grep -v ^$    //查看主配置文件生效行

由于我已经配置成功,就直接进行查看贴图了。过滤双斜杠以及空格开头的行(显示所有生效行)

# vim /etc/named.rfc1912.zones    //修改子配置文件
# tail -8 /etc/named.rfc1912.zones    //查看子配置文件后8行

由于子配置文件我已经修改好了,且只需要在子配置文件后面进行添加内容,所以我只显示子配置文件的后8行(我添加的内容)进行展示

# cp -p /var/named/named.localhost    /var/named/czh.com.zone        //复制正向解析数据库模板文件
# cp -p /var/named/named.localhost    /var/named/czh.net.zone        //复制正向解析数据库模板文件
# ll /var/named        //查看/var/named目录下文件的详细信息

在复制解析数据库模板文件的时候记得属性带一个-p,代表着复制文件且保持文件属性

如果忘记加上-p你在查看/var/named目录下文件的详细信息时会发现数据库解析文件的所属组为root并非named,这会导致DNS服务无法解析,也是非常容易错的一个地方

当然解决办法为下面的命令,root:named 前者代表文件所属用于,后者代表文件所属组用户。我们目的是将文件所属组用户改为named来解决问题!

# chown root:named /var/named/czh.com.zone    //如果复制文件忘记保持文件属性就执行这两条
# chown root:named /var/named/czh.net.zone    //如果没有则不需要执行

# vim /var/named/czh.com.zone    //修改解析数据库配置文件
# vim /var/named/czh.net.zone    //修改解析数据库配置文件

# cat /var/named/czh.com.zone    //查看解析数据库配置文件
# cat /var/named/czh.net.zone    //查看解析数据库配置文件

由于我这边已经配置好了,就直接进行查看解析数据库配置文件

# service named start    //启动DNS服务

最好的检测就是去WinXP物理机(客户机)上测试一下,就知道DNS是否配置成功!

# nslookup www.czh.com
# nslookup www.czh.net

测试表明,www.czh.com dns1.czh.com 解析配置成功!

测试表明,www.czh.net dns1.czh.net解析配置成功!

且每一个解析都测试了两遍,你会发现解析地址有两个,且两次测试的顺序都不一致。

不要忘记将Node2上的DNS服务设置为开机自启!

# chkconfig named on

Node3配置NFS服务

# rpm -qa | grep "rpcbind"        //检测是否安装rpcbind软件包
# rpm -qa | grep "nfs-utils"    //检测是否安装nfs-utils软件包

# yum install -y rpcbind        //如果没有安装就安装
# yum install -y nfs-utils        //如果没有安装就安装

多数情况下,Linux 是自带安装好了NFS服务的,当然也不排除没有安装的情况!

# mkdir -p /webdir/czh.{com,net}    //创建/webdir目录并在目录下创建czh.com和czh.net两个目录
# chmod o+w /webdir/czh.{com,net}    //将两个目录其他者权限设为可读可写
# ll -d /webdir/*        //查看/webdir目录下的相关目录及文件信息

创建一个/webdir目录以及/webdir目录下的两个目录,且其他者权限为可读可写,为后续的NFS服务文件共享做准备

# vim /etc/exports    //修改NFS配置文件
# cat /etc/exports    //查看NFS配置文件

NFS配置文件为空白的,得自己写入。所以文件名一定不要打错!我这边配置好了就直接贴图!

# service rpcbind restart    //重启rpcbind软件
# service nfs    restart        //重启nfs软件

最好的检测就是去Node1或者Node2检测一下NFS是否成功

# showmount -e 192.168.42.3

经测试,可以看到共享的两个目录文件!

老规矩,不要忘记了设置NFS服务开启自启

# chkconfig rpcbind on
# chkconfig nfs on

Node1,Node2进行挂载NFS共享

# mkdir /var/www/html/czh.{com,net}        //在/var/www/html目录下创建两个目录用来接收挂载
# ll -d /var/www/html*        //查看/var/www/html目录下的目录及文件详细信息

# vim /etc/fstab    //编辑挂载配置文件

编辑好挂载配置文件后执行下面的命令

# mount -a         //将/etc/fstab的所有内容重新加载
# df -hT        //查看挂载内容
# ll -d /var/www/html/*        //查看/var/www/html目录下的目录及文件的详细信息

当挂载成功后,去查看/var/www/html目录下的目录及文件的详细信息,你会发现权限会与NFS服务器上共享的文件目录权限一致,所以这时候我们的其他者变为了可读可写!

# echo "Welcome to www.czh.com" > /var/www/html/czh.com/index.html
# echo "Welcome to www.czh.net" > /var/www/html/czh.net/index.html

向/var/www/html目录下的两个网站目录内创建一个名为index.html的文件,并放入内容!

以上为Node1挂载的演示,请在Node2上重复做一次,完成挂载!

此步后的内容,默认您已经完成了Node2 NFS的挂载操作

# ll /var/www/html/*        //查看/var/www/html目录下的所有内容
# cat /var/www/html/czh.com/index/html    //查看/var/www/html/czh.com目录下的index.html文件内容
# cat /var/www/html/czh.net/index/html    //查看/var/www/html/czh.net目录下的index.html文件内容

测试证明挂载成功,且完成了共享存储的同步。无论你在哪一台WEB服务器(Node1,Node2)上进行读或写操作,都会进行同步!

Node1,Node2配置WEB服务

# rpm -qa | grep httpd    //检测是否安装WEB服务
# yum -y install httpd    //如果没有安装就安装一下

# vim /etc/httpd/conf/httpd.conf

注意点,在WEB服务配置文件最底部添加你需要解析的网站,当需要实现多域名多网站访问的时候记得将NameVirtualHost *:80前面的注释给去掉!

# service httpd start    //启动WEB服务

到此WEB服务的配置就完成了,同时请重复以上步骤在Node2上也配置一遍!

配置是否成功,去WindowsXP上检验一下就知道了!

经过检验,网站访问成功!当你访问www.czh.com时如果访问的是Node1那么再访问一次就一定是Node2服务器了,这个在DNS检验是也验证了!

最后的最后还是记得回到两台WEB服务器上Node1,Node2将WEB服务设置为开机自启

# chkconfig httpd on

到此就完成了基于共享存储的负载均衡网络架构的所有操作!

拍错小技巧

当物理机(客户机)访问网站无法访问如何拍错?

1.看看自己本地IP地址是否有误?(是否能够与互联网、广域网、外网进行通信)

2.测试一下解析,是否都能够正确的进行解析(能够解析说明是WEB配置的问题,不能解析就去解决DNS的问题)

3.测试一下WEB服务是否正常

如果IP可以访问WEB,但是域名无法访问,大几率问题出现在DNS服务上。

如果IP都无法访问WEB,那你得感觉去找找WEB服务上配置的问题!

NFS死活挂在不上去?

中午有个同学问我两台WEB服务器在对NFS进行挂载的时候死活挂载不上去,当时也没有找到错误的地方,晚上自己重新做了一次也碰到了同样的问题,所以我认为是有必要去记录一下的!

1.搞清楚架构,两台WEB服务器是通过第二块网卡192.168.142.*与NFS服务器进行文件传输的,所以你必须得保证能够通信,当然这不是问题所在。

2.showmount -e 192.168.42.3 通过这个命令查看一下是否能够看到NFS服务器共享的文件,这里我能看到,这个时候就自闭了,很难找到问题所在。为了更直观,我模拟一下错误环境,然后贴图供大家查看!同时我确保问题不是在WEB服务器的配置上。

3.看看NFS服务器NFS服务配置文件==>/etc/exports

NFS配置文件配置起来很简单,书写格式上很自信的说不会出现问题!!!!那么问题在.....?

4.分析错误点。WEB服务器无法挂载NFS,但是能够查看NFS,同时我能够确保WEB服务器挂载写法是正确的,问题聚焦在NFS服务器上。但是NFS服务配置文件对了几遍写法确实没问题,所以我们得回到架构图,分析一下此次试验的架构!

本次实验,两台WEB服务器有两块网卡分别为192.168.42.和192.168.142.。NFS服务器只有一块网卡地址为192.168.142.3。WEB服务器与NFS服务器用来传输是在模拟局域网也就是192.168.142.0网段。我们上图配置文件写的是NFS共享到192.168.42.0网段。两台WEB服务器有42网段的网卡,自然是能够实现查看到共享的文件的,但是无法挂载。

无法挂载原因是NFS服务器只有一个网卡,并且为192.168.142.0网段。它向将文件传输给192.168.42.0网段,有网络基础知识的同学应该就能明白,不同网段默认情况下是无法进行文件传输的,这样就有了路由器,然后这个不在本次实验的范围中。

# service rpcbind restart
# service nfs restart

重启一下NFS服务相应软件,然后去WEB服务器上检验一下,会发现挂载成功!

WEB服务死活启动不了

Starting httpd: Warning: DocumentRoot does not exist

碰到过几次,身边同学也碰到过几次,后来百度了一下,发现是Selinux的问题,一定要记得关闭掉!!!

df与df -hT区别?

human-readable :人类可读的,人性化的

type:类型

对比一下!多出了类型这一栏,可以清晰的看出挂载文件的类型,同时人性化的将默认K为单位的大小变为了G为单位的大小!

总结一下

Node1,Node2的WEB服务,Node1的DHCP,Node2的DNS,Node3的NFS这些服务在测试成功后都记得去设置开机自启,不然机器重启后服务不会自动运行,用户自然也就无法正常的访问网站了!最后的最后感谢浩哥的指导。本文由程志辉原创独自编辑,难免会出现一些错误,欢迎大家在评论区指出,同时转载请留下版权!

2019年05月19日
  • 云点SEO 感觉知识已经都还给了学校。。。
  • 程志辉 作者 回复 云点SEO 我也是,感觉都忘了,记笔记很重要啊
  • clatterrr 刚好看到负载均衡不知道什么意思。虽然现在还算不知道..
  • 程志辉 作者 回复 clatterrr 哈哈,我也忘得差不多了。简单点:用户通过URL进行访问网站,但是公司业务服务器配置又有限,可以选择让多台服务器结合起来工作。第一次访问到A服务器上,第二次访问到B服务器上,这样就称为负载均衡。
  • nash.zhao 换主题啦!linux这块好久没看过了,我。不过看了你的,还有印象
  • 程志辉 作者 回复 nash.zhao 嘿嘿~linux还是有必要学习一下的~
  • 说说文字 好长,看得有点懵逼
  • repostone 好长的文章。
  • 查看更多...
Icefox Theme . 鄂ICP备16001608号-1