粉丝1348获赞6823



那 ok, 朋友们,那上节我们把这个四零四的这个问题给说过了,是我们的 note 放的就是找不到东西,因为你配置错误导致找不到这个东西啊。那我们这节来说一下四零三,那四零三所体现出来的问题就是我们的权限问题, 那我们知道我们运行 nx 的 用户是我们的 nx, 默认都是用我们的 nx 用户来运行的,当然这不排除你把默认的这个 nx 的 运行用户给它改成 root 啊,如果说你是 root, 那 就应该是不存在这样的问题的。但是如果说你是 nx, 你 访问自己的网站的时候报四零三了,那你首先要去看的是 我们配置的这一个目录下面他有没有权限。我们先看一下这个配置文件,那首先你看我们配置的这个 user index, 默认这个 index 目录,他就是应该属于是 index 这个用户的, 如果说你不属于 index 用户,或者说你 index 运行的时候用到其他用户没有权限,那他就会导致这个四零三的问题。好吧,那先跟大家说,他四零三不是没文件,是有文件但是没有权限, ok 吧?那大家不能忽略的一点是什么呢?那我们在我们的机器上的这个 getting force, 我 们的 s e linux, 好 吧,这个安全措施如果说你没有关掉,可能也会导致这个问题,那么这节所讲到的四零三问题所涉及到的那就是两个方面。那第一个呢,就是文件,或者说是目录, 目录权限,嗯, nix 无法读取,也就说它没有权限。好吧,那第二个呢,就是 nix 运行用户,这个我们要去 去部署 index 的 时候就要去把它搞明白,去把它去做好,好吧?那第三个呢?就是我们的 x n x, ok, 那 我们四零三所说的问题就是这三个问题,那大家如果说以后再遇到四零三问题的时候,就知道怎么样去排查了,好吧? ok, 那 这节我们就先到这里,那下节呢?我们去讲一个五零零的错误。

当我们访问页面出现四零四、四零三五百五零二,五零四这些错误码的时候,我们应该怎么样去排查我们网站上面的问题呢?那为什么我们突然开始讲这个呢?因为前两天有粉丝在群里面问他,这个网站突然出现了这个五零二的问题啊,应该怎么样去排查?应该找什么问题? 那这个相信大家应该经常会遇到这些问题啊,所以呢我打算把这个去总结一下,就是经常遇到的这些状态吗?去总结一下,然后跟大家说一下这个排查思路。 那给今天我们先来讲这个四零四,那四零四相信大家一直都能听说过,都能遇到过啊,但是呢,如果说啊,让你 具体的去说这个是出现了什么问题,应该怎么排查的时候,那可能你也有点迷,也有点迷茫,那我们今天来具体的说一下啊,首先呢我们要知道这个状态码出现的时候,我们首先要想到的一个问题就是 n g 上面啊,那来我们来看一下,我们的这个默认有一个测试的这个配置文件呢,我们来看一下,首先 我们可以看到它是监听在我们的八零八一端口上面,然后呢我们也没有设置域名,也没有设置 ssl 这些东西啊,那我们主要要说的一些东西是什么呢?第一个就是我们的 location, location 是 什么意思? location 主要是用来匹配请求的啊,匹配什么请求?也就是说比如说我们在访问一个网站的时候,三 w 百度点 com, 那后面默认你不写的时候,它就是这一个根,那如果说你加一个 api, 那 就是说它访问的就是三 w 点,百度点 com 后面跟一个 api 是 这个接口,它是一个接口请求啊,然后我们 location 下面它有一个这个 root root 主要是干嘛的呢? 我们访问到 location 之后,匹配到这个请求之后,然后这个 root 它就会去我们这个机器的这个目录下面去寻找我们的这个文件,好吧?你看这里它就寻找我们的 index html, 去这个目录下面寻找这个文件。那首先我们要知道的第一个四零四的问题就是 not found, 就是 没有找到, 他去这个目录下找了,那第一个问题就可能说这个目录根本就不存在,或者说有这个目录,但是下面文件不存在,但是不管怎么说它 就是没有这个文件,他找不到,对 enigma 来说他找不到,然后就是他上层的这个 location 可能说你这个接口直接就没有,也就是说这两个问题,第一个可能你 location 错误了,第二个可能你 root 错误了,也就是说对 enigma 来说你的资源找不到,好吧? root 路径配置错误,或者说 location 匹配导致的。四零四,这是两种场景。 然后还有一个场景,就是我们的一个前端的路由场景啊,为什么说前端路由场景呢?一个比如说我们去访问一个域名 http 啊,到我们的本机,你不管是你访问这个 ip 也好啊,那个域名也罢,那都是一样的。最后域名它还是解析到了我们这一台机器上面,好吧?那这个正常来说,这个如果换成域名它也是一样的,那我们这边写了一个这个,比如说我们访问这个的时候,我们配置了一个接口,正常来说我们去访问一个 app 有 哪这是一个接口,但是这个接口在我们这 n g 上没有配置的,对吧?而这个接口它是配置在我们的 v e 或者 like 这个前端, 他就把这个前端配置上去了,那他就会前端去解析这个路由,那不用我们的这个 n g t 去解析这个路由了。但是如果说你像我们刚才那样,像我们刚才这样直接写这个 root 这个,那他肯定是去本机下面又去找这个文件了,对吧?当然没有,那肯定会报错,那他报出来的也是四零四,那这时候就需要我们用 n g x 里面的一个配置去解决这个问题,那怎么解析的呢?其实这个路由意思就是 啊,如果说这个路径真的是个文件的话呢,就直接返回,也就说如果说你本机上面真的有这个路径,那直接就返回了,那如果没有呢?那就把它丢给我们的 index, 让他自己去处理这个路由信息。好吧,那我们今天所说的四零四的问题,那我们来总结一下, 来看一下我们这个图。首先我们 location 匹配请求 root 去找文件,如果说出现四零四的问题呢,来出现四零四 三种情况,那第一个呢就是我们的 location 匹配导致的四零四,第二个呢就是我们的 root 路径配置错误导致的四零四啊。然后就是我们的第三个前段路由的四零四,这个要去解决的话,那就需要去用我们的 travis 去解决啊, travis 这个配置 ok, 那 四零四的这个问题我们就讲到这,那我们下一节呢?去把这个四零三去讲一下。

为什么我的电脑明明又忘,但每次搜索网页的时候都会显示无法访问此页面?或者是一串神秘的四零四,又或者是一个神秘的小恐龙? 其实这种情况非常常见,那么这期就用神秘教会你如何解决这个问题。首先我们打开搜索框,直接搜索代理, 找到代理服务器设置,因为这种情况大概率都是因为代理出了问题。这里的手动代理如果是打开的,直接改为关闭就可以了,如果还是不行的话,那就只能打开浏览器设置,然后再重置一下设置就可以了,这样就可以正常打开网页了。怎么样,是不是非常简单? nice?


如果你的 n x 病发量并不高,那么你可以试着调整一下这几个参数。第一,使用一 pad, 也就是 i o 多路互用模型。第二,设置网络连接虚拟化,防止金群现象的发生。 第三,同时接受多个滤芯连接。第四,配置连接数,这个只可以根据自己的电脑性能进行相应的配置,不建议配置太大,如果太大你的电脑处理不过来,那么也没有任何意。最后给大家推荐一下我的这几份实战手册,他们主要解决三个问题, 一是提高学习效率。二提高你的实战能力。三当你遇到问题的时候有个抓手。

刚面了个两年运维简历,写得非常优秀,且熟练搭建 ngets 环境,结果我连续三个问题就把他问蒙。在现场,我问他用包管理装 ngets 要先装什么?依赖配置文件默认路径在哪?启动报错八零端口备战怎么解决?他瞬间卡壳挠头,憋了半天就记得 u m install ngets, 其他的忘了,我直接结束面试。很多运维求职者都这样,只会复制粘贴安装命令,装完就忘,连基础配置和排查都不会。面试必挂,真到生产必出问题。今天不整虚的,三分钟手把手教你答 ngets 环境, 新手能直接抄作业,老手能补漏,全程无废话,看完直接上手。我的实战观点,搭建 n games 的 核心从来不是装完能启动,而是懂配置,会排查。新手别上来就啃原码翻译,先把基础搭建练扎实才是最稳妥的。新手直接抄的四步实操,一劳不踩坑,每一步都在实战细节。 一、环境准备,先装依赖,避免安装失败。不管是 centos 还是 ubox, 先装必备依赖这步百分之九十新手会跳过,导致后续安装报错。 centos 用 e i u m install y j c c p c read the well zealib the well opensel the well wib 用 a p tins the y g c libasl 一 g the well l i b s s l the well 不 用单独装 opencell libasl the well 里已经包含了相关依赖,依赖依赖装全后 需少走很多弯路。二、安装 enix, 新手优先用包管理,拒绝盲目原码翻译,新手别跟封港,原码翻译步骤复杂,还容易 出错。包管理安装简单快捷,还能自动配置环境变量, sendos 直接执行 u m install ingix y a buntar 执行 app install ingix y 一 键安装,全程不用手动配置路径,省心又高效。三、核心配置,找到配置文件路径, sendos 和 ebooks 默认 都在 a t c enix n g i n x dot c o n f 新手不用改复杂配置,只需确认三点监听八十端口网站跟目录是 u s r enix html, 默认首页是 index 点 html。 用 n g g t 命令检查配置是否有误,这是避免启动报错的关键。四、 启动与验证三个命令,快速确认是否成功。启动命令 system seto start enix, 再用 system seto and apple enix 设置开机自启。 验证方法很简单,浏览器输入服务器 ip 能看到 enix 默认页面就成功。若启动报错,优先用系统自带的 s s 命令排查八零断口占用输入 s s tuning grab 八十就行,不用额外安装,要是习惯用 nesset 先装 nettows 三 to s 用 yam install nettows why? 卢克勤用 appentent install nettows why? 查到占用进程 q 掉就好。重点致命坑,新手必必 b 一, 跳过依赖安装肯定会直接提示 错误。二、找不到配置文件就瞎改路径,启动必报错,记住默认路径 etc n g x n g x dot c o n f 就 够了。三、启动后外部访问不到,大概率是忘了。放行八十四 百四十三端口 s 用 firewall command 放行命令是 firewall 杠 c m d permanent 杠杠 at 杠 port 等于八十 t c p 杠 at 杠 port 等 等于四百四十三端口执行完重启防火墙,输入 firewall c m d reload u f w 放行命令是 u f w allow ad t c p under under u f w allow four hundred fully three t c p 表示 u f w 没起用,先执行 u f w a label。 四新手盲目用原码编辑自定义路径易出错,后续升级卸载都麻烦。新手先把包管理安装练会再说。总结, n 建森搭建不难,难的是懂底层逻辑,会排查错误。新手先把这四步练熟再进阶原码编辑和性能优化才是正确的学习 路径。我整理了 n 建森完整配置文件常见报错排查手册,还有包管理加原码编辑两种安装教程。新手直接抄作业的同学留六六六直接打包带走。

面试备问, ankers 是 什么?背了一堆概念,还是不知道它到底干嘛的?别死记硬背了,今天用最通俗的方式,从零给你堆出一个 ankers, 看完直接通透。编程界有句至理名言,没有什么问题是加一层,中间层解决不了的,如果有, 那就再加一层。我们就用这个思路,一步步搞懂 ankers 的 高并发架构到底是怎么来的。第一步,先搞懂什么是 h t t p 服务器,你写个 txt 文件,拖进浏览器,只能看到干巴巴的文字。后来我们给文字加了 u i o ing 这些特殊标签, 让它能显示标题、列表、图片,这就是 html。 本地的 html, 你 自己能看,但别人怎么看?很简单,在远端服务器上跑一个进程, 专门接收浏览器的请求,然后把对应的 html 文件发回去。这个专门干这件事的进程就是 http 服务器。第二步, 反向代理加负债均衡,解决高病发。但一个完整的项目,光有前端页面不够,还得有后端接口。拿数据。流量小的时候,一个后端服务够用,流量一大就崩了, 只能多开几个服务,可服务多了,浏览器该访问谁?这时候再在所有后端服务前面加一层进程,对外只暴露一个域名,所有请求先到他这, 它才均匀分给后面的服务,这就是反向代理。而这个分配请求的过程就是负债均衡。第三步,升级成全能网关,什么都能干。现在这个进程,既能发前端页面,又能转发后端请求,所有流量都得经过它, 那它自然就成了网关。既然是网关,那通用能力都可以往它身上堆,加日制记录,方便排查问题,加内容压缩省贷宽 加 a p 限流防攻击,甚至还能自定义模块,实现各种奇葩需求。不仅支持 h t t p, tcp u d p, web socket 也全给它安排上,再整个配置文件 ankins 点 com p r, 想用什么功能开什么,灵活得很。第四步,单县城多进城性能直接拉满。那怎么让它跑得更快?多县城会有病发问题和切换开销? 那干脆就用单线城处理请求,彻底避开这些坑。单进城扛不住怎么办?那就多开几个一模一样的进城,我们叫它 wiker 进城,进城之间完全独立一个挂了,其他的照样跑。把 wiker 数量设成和 c p u 和数一样,每个和跑一个,火力全开。这里留个问题, 为什么多个 wiker 同时监听同一个端口不会冲突?评论区告诉我。第五步,加共享内存, 解决数据同步,但多个 worker 各自为政也有问题,比如限流技术,每个 worker 各算各的,那不就烂了?所以给他们开辟一块共享内存, 所有 worker 都能读写这里的数据,保证大局一致。第六步,加 master 进程,实现滚动升级。还有个问题,更新配置的时候, 如果所有 wacom 一 起重启,那所有连接就全断了。这时候再搞一个 master 进程,专门管 wacom。 更新的时候,先启动新的 wacom 接收流量, 再慢慢把老的 wacom 关掉,全程无感知,这就是滚动升级到这里。当初那个简陋的单进程就变成了我们今天用的 ndx, 它支持 h t t p 服务,反向代理,负债均衡,日制限流,还能自定义模块,性能更是离谱,轻松扛住五万 q p s, 应付你那几十 q p s 的 小项目绰绰有余。最后再留两个灵魂拷问, n g x 存在单点故障问题该怎么解决?你知道 n g x 的 缓存 proxy cache 是 存在内存还是磁盘吗? 答案,写在评论区,觉得有用的点赞转发给你!那还在被 anink 概念的兄弟文字版笔记我放评论区了,下期我们聊大数据的核心逻辑,关注我,编程干货不迷路!

你有没有这种经历,想看看 nint 跑得怎么样?得开终端敲命令,想配个 ssl 证书,得手动上传改配置重启,想排查个问题,日制翻半天找不到重点。 而 gmssh 的 nint 管理器全新升级,完美的解决了这个问题。这次升级不是简单改改界面,而是底层全换了,用购语言,重购,启动更快,占用更低,服务器压力小了,你当牛马也更顺了。 以下这三个核心升级都是奔着省事去的。首先是监控可视化,以前看 n 镜子状态得用命令行敲 n 镜子 t 刻录各种接口,现在界面上一眼看到 qps 多少,连接数多少,哪个站点在吃资源,全用图标给你标出来,服务器健康不健康,扫一眼就知道。 其次是 ssl 证书一键申请,以前配 h t p s 得去各种平台申请证书下载文件上传,服务器改配置重启,一套流程下来半小时没了。 现在 gmssh 里点几下 http 验证、 dns 验证,都支持证书自动申请,自动部署,不用你手动折腾。最后是拓展性更强, 这次新增了对 openresty 的 翻译安装支持,脚本可玩性也提升了,想自定义模块做复杂配置的有更多空间折腾。 说白了,这次重构就是想让恩进哥管理这件事,从需要记一堆命令变成打开界面就能干。总之,这次升级确实让我眼前一亮,期待他的飞速成长!