Nginx作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了我们对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把他们缓存到会话cycle中,方便下一次获取使用。

经常的,在写 openresty 的脚本时发现不清楚 nginx 的内部变量该如何调用,此时,了解以下变量,就会变得非常有用。

$arg_name 请求中的name参数
$args 请求中的参数
$binary_remote_addr 远程地址的二进制表示
$body_bytes_sent 已发送的消息体字节数
$content_length HTTP请求信息里的"Content-Length"
$content_type 请求信息里的"Content-Type"
$document_root 针对当前请求的根路径设置值
$document_uri 与$uri相同; 比如 /test2/test.php
$host 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名
$hostname 机器名使用 gethostname系统调用的值
$http_cookie cookie 信息
$http_referer 引用地址
$http_user_agent 客户端代理信息
$http_via 最后一个访问服务器的Ip地址。
$http_x_forwarded_for 相当于网络访问路径
$is_args 如果请求行带有参数,返回“?”,否则返回空字符串
$limit_rate 对连接速率的限制
$nginx_version 当前运行的nginx版本号
$pid worker进程的PID
$query_string 与$args相同
$realpath_root 按root指令或alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径
$remote_addr 客户端IP地址
$remote_port 客户端端口号
$remote_user 客户端用户名,认证用
$request 用户请求
$request_body 这个变量(0.7.58+)包含请求的主要信息。在使用proxy_pass或fastcgi_pass指令的location中比较有意义
$request_body_file 客户端请求主体信息的临时文件名
$request_completion 如果请求成功,设为"OK";如果请求未完成或者不是一系列请求中最后一部分则设为空
$request_filename 当前请求的文件路径名,比如/opt/nginx/www/test.php
$request_method 请求的方法,比如"GET"、"POST"等
$request_uri 请求的URI,带参数; 比如http://localhost:88/test1/
$scheme 所用的协议,比如http或者是https
$server_addr 服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费)
$server_name 请求到达的服务器名
$server_port 请求到达的服务器端口号
$server_protocol 请求的协议版本,"HTTP/1.0"或"HTTP/1.1"
$uri 请求的URI,可能和最初的值有不同,比如经过重定向之类的.

一、升级 node

ubuntu 上面的 node 版本过低,项目要求 node 版本大于 12,所以需要使用 nvm 安装最新版本的 node。

nvm install 15
nvm use 15
npm install -g npm@latest

此时,node 和 npm 都是最新的版本了。

二、安装 wechaty

安装 wechaty 以及基本的 node 环境包。

mkdir robot
cd robot
npm init -y
npm install wechaty
npm install qrcode-terminal
npm install wechaty-puppet-wechat

三、运行 robot.ts

比较常用的方案是使用 grep 命令:

一、使用 grep 针对指定后缀的文件进行全文检索

grep 'some key words' -r ./some_folder --include=*.ext

二、使用 grep 搜索,匹配多个关键词。

grep -i -E "golang|dart|flutter|oraclecloud" -r ./some_folder

使用 fzf 工具进行搜索

SEO 优化最重要的事情之一就是建立反向链接。反向链接之所以重要,因为搜索引擎将反向链接视为有价值内容的投票内容。如果有很多网站链接到您的网站,搜索引擎更有可能在搜索结果中显示您的内容,从而提高您对链接主题的排名。

虽然有很多链接链到你到网站,担他们的价值并不相同,有一些链接来自权威的站点,有一些来自普通的站点,来自权威的可信度高站点的链接传递了比较高的权重,普通站点就低一点,google 通过一套算法来对这些链接传递的权重进行打分。

反向链接,有好的也有坏的

另一方面,也有一些链接,实质上对传递权重毫无用处,反而是一种有害的。这一类站点的特点是,低信任度,低质量,甚至被google 标记为垃圾站点,从索引中删除。他们不但可能损害您的网站得分,还有可能带来google 对站点的惩罚,这一类链接被称作“有毒链接”(Toxic link)。

google 是这样描述 toxic link 的:

在某些情况下,传入链接会影响谷歌对网页或网站的看法。例如,你或搜索引擎优化器(SEO)通过付费链接或其他链接构建到您网站的坏Ilink违反我们质量准则的计划。第一和最重要的是,我们建议您尽可能地删除垃圾邮件或低质量的链接。

ahref 站点有个更简单的划分:
  • 那些由链接站点编辑控制的链接,是良好的,高质量的。
  • 那些由机器自动生成的链接,无需编辑控制的,是差的,低质量的。

什么导致有毒链接

大概有以下几方面的原因,导致搜索引擎认为链接是低质量的,有毒的:

  • 域名的信任度很低:如果一个站点的反向链接的质量很低,很少有高信任度的站点传递过来的链接,那么该站点的信任度得分就会很低。
  • 做链接的页面:如果有很多站点,用很相似的内容,很相似的关键词,链接到你的站点,那么在搜索引擎看来,这可能是一个人为控制的链接建设方案。
  • 页面布局:如果网站页面布局中,文本的内容和 html 的所占的比例很低,在搜索引擎看来,页面的质量是比较低的。

有毒链接的危害

如果受到搜索引擎的处罚,它会降低您的网页排名。如果处罚足够严重,您的站点甚至会从索引中被删除。

谷歌在 2012 年推出了针对低质量链接的企鹅算法。使用链接建设方案的网站排名直线下降。从那时起,谷歌改进了算法,使其更擅长捕捉和惩罚不良链接。

如果企鹅看到链接有毒链接,它将根据您的链接配置文件应用惩罚。

除了企鹅,谷歌还为他们的垃圾邮件团队增加了更多的人力资源,他们可以手动惩罚具有有害反向链接的网站。有数据表明,谷歌每月发起超过 400,000 次手动操作。

手动链接审查和处罚可能由以下因素触发:

  • 来自竞争对手的垃圾邮件报告
  • 企鹅的算法活动触发人工审查
  • 您处于 Google 垃圾邮件团队活动监控的利基市场

如何找到有毒链接

一般来说,你需要借助一些工具,比如 semrush 或者 ahref。

如何清除有毒链接

您可以通过向 google 的 拒绝链接 提交要删除的链接或者域名。

参考:Toxic Backlinks - How They Hurt SEO, and How to Get Rid of Them