一、什么是 robots.txt

Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

协议写在robots.txt文件里面。

二、要不要使用robots.txt

1、如果你的网站有部分内容不希望搜索引擎抓取,那么请设置robots.txt
2、如果你的网站全部内容都需要被搜索引擎抓取,可以不设置。
3、一般来说,一些后台文件(如css、js)、用户隐私的文件不用被搜索引擎抓取。
4、如果有些文件频繁被蜘蛛抓取,但是这些文件又是不重要的,那么可以用robots.txt进行屏蔽。

三、robots 协议规则

User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符

Disallow: /文件夹名称/ 这里定义是禁止爬取这个文件夹下面的目录

Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)。

Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址

Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片

Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。

Allow: /cgi-bin/  这里定义是允许爬寻cgi-bin目录下面的目录

Allow: /tmp 这里定义是允许爬寻tmp的整个目录

Allow: .htm$ 仅允许访问以”.htm”为后缀的URL。

Sitemap: 网站地图的URL 告诉爬虫这个页面是网站地图

四、这里是一个 demo

User-agent: SMTBot
Disallow: /

User-agent: AhrefsBot
Disallow: /

User-agent: Cliqzbot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: DomainStatsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: SemrushBot-SA
Disallow: /

User-agent: spbot
Disallow: /

User-agent: *
Allow: /

Disallow: /images/
Disallow: /articletype/
Disallow: /article/
Disallow: /user/
Disallow: /cart/
Disallow: /*.php

Disallow: /comment/list/*
Allow: /comment/list/$

Sitemap: /sitemap.xml

五、robots.txt具体用途

1、一个页面对应多个URL时,应屏蔽多余的URL。

2、如果网站有页面是没有实质性内容的,应该屏蔽掉。

3、如果网站改版删除了大量的页面(404),应该屏蔽掉。

4、如果是UGC网站,用户产生了大量的不良内容,应该屏蔽掉。

5、不希望被搜索引擎索引的内容(后台界面、用户隐私),应该屏蔽掉。

合并某个分支上的单个commit

比如,feature 分支上的 commit 62ecb3 非常重要,它含有一个bug的修改。你现在只需要将 62ecb3 合并到 master,而不合并 feature 上的其他 commits:

git checkout master
git cherry-pick 62ecb3

合并某个分支上的一系列commits

在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。

这种情况下就不要选择 cherry-pick 了,rebase 更适合。

假设你需要合并 feature 分支的 commit 76cada ~62ecb3 到 master分支。

首先需要基于 feature 创建一个新的分支,并指明新分支的最后一个commit:

git checkout -b newbranch 62ecb3

然后,rebase 这个新分支的 commit 到 master(--ontomaster)。

git rebase --onto master 76cada^

得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。

偶尔会因为业务需要,对 nginx http 请求做一些特定的处理,使用 openresty 可以办到很多使用 nginx 难以处理的问题。

但是,如果对 openresty 的调试如果不熟悉,遇到一些编码错误的时候,就很难定位问题,解决问题。

这里简单的整理几条技巧,通过他们可以比较容易的对 openresty 进行调试。

一、搭建 openresty 的环境

这部分参考 openresty 的编译说明操作即可。

二、配置 nginx.conf, 便于调试

  1. 打开错误输出:
    在 nginx 配置文件的顶部,添加:
error_log stderr debug;
  1. 关闭守护进程:
    在 nginx 配置文件的顶部,添加:
daemon off;
  1. 关闭 lua_code_cache:
    lua_code_cache 默认是开启的,在生产环境中也必须开启,这样能够提高 nginx 的运行效率,但是在开发环境,可以打开,这样,当你对 lua 脚本的内容进行改变的时候,无需重启 nginx, lua 脚本就能生效。

二、如何自定义输出 nginx 日志

在你的 lua 脚本中,你可能想对执行过程中对某个变量进行输出,此时,你可以使用 nginx.log() 方法。

nginx 的日志级别如下:

ngx.STDERR 标准输出
ngx.EMERG 紧急报错
ngx.ALERT 报警
ngx.CRIT 严重,系统故障, 触发运维告警系统
ngx.ERR 错误,业务不可恢复性错误
ngx.WARN 提醒, 业务中可忽略错误
ngx.NOTICE 提醒, 业务中比较重要信息
ngx.INFO 信息, 业务琐碎日志信息, 包含不同情况判断等
ngx.DEBUG 调试

示例:

ngx.log(ngx.ERR, “num:”, num)
ngx.log(ngx.INFO, ” string:”.. str)

三、调试 lua 函数

建议下载软件 ZeroBraneStudio , 对 lua 函数进行单独的调试。

四、需要熟悉 nginx 的常用变量

五、需要熟悉 nginx 的执行阶段

六、为了调试,你需要有一个启动 openresty 测试环境的脚本

#!/bin/bash

sudo /usr/local/opt/openresty/bin/openresty  -p  /data/www/nginx/dev/ -c conf/nginx.conf

状况:ubuntu系统不支持中文,遇见中文就????。

目标:使系统/服务器支持中文,能够正常显示。

首先,安装中文支持包language-pack-zh-hans:

sudo apt-get install language-pack-zh-hans
sudo locale-gen zh_CN.UTF-8

可以了~