Nginx location 和 proxy_pass

Location

Nginx location 用于匹配请求 URI,匹配上之后按照其定义的方式对该请求进行处理。loacation 官方说明

语法

1
2
3
4
Syntax:	location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:	—
Context:	server, location

匹配命令

参数/修饰符说明
location 后没有参数直接跟着 标准 URI,表示前缀匹配,代表跟请求中的 URI 从头开始匹配。
=精确匹配,用于标准 URI 前,要求请求字符串与其精准匹配,成功则立即处理,Nginx 停止搜索其他匹配。
~用于正则 URI 前,表示 URI 包含正则表达式, 区分大小写
~*用于正则 URI 前, 表示 URI 包含正则表达式, 不区分大小写
^~用于标准 URI 前,最长非正则匹配,并要求一旦匹配到就会立即处理,不再去匹配其他的。
@@ 定义一个命名的 location,@ 定义的locaiton名字一般用在内部定向,例如error_page, try_files命令中。它的功能类似于编程中的goto。
/通用匹配, 如果没有其它匹配,任何请求都会匹配到

匹配顺序

To find location matching a given request, nginx first checks locations defined using the prefix strings (prefix locations). Among them, the location with the longest matching prefix is selected and remembered. Then regular expressions are checked, in the order of their appearance in the configuration file. The search of regular expressions terminates on the first match, and the corresponding configuration is used. If no match with a regular expression is found then the configuration of the prefix location remembered earlier is used.

使用 hugo 搭建 blog

前言

在极客时间中看到第454期|没有输出的学习与消遣无异一文觉得挺不错。里面提到

首先,不管是做事还是学习,都要做生产者。在他看来,技术人大都很忙碌,忙于工作,甚至忙于学习,但人们在做事情的时候其实有两种角色:生产者和消费者。以学习为例,学习本身其实是一种消费,每天忙着去读书,看起来是在学习,但是学完以后你的生活和工作因此改变了吗?或者说有产出和输出吗?如果没有,每天的日子还是老样子,工作和生活也没有改变,那这样的学习其实和玩一会手机、看一会抖音,在本质上并没有太大的区别。

PicGo-Core (Command line) macOS 配置七牛云图床

PicGo-Core 是一个开源图片上传 node 模块.

安装 PicGo-Core (Command line)

如果有安装 node 或者 yarn 可以直接使用以下命令安装:

1
2
3
4
npm install picgo -g
# or

yarn global add picgo

配置

在配置七牛云上传之前,如果还没申请过 qiniu 的对象存储,先去 qiniu 注册创建,并且获取到个人账号的 key。

iTerm2 中使用 ClashX proxy

iTerm2 配置 http 代理

终端下的很多应用会通过 http_proxyhttps_proxy 环境变量的影响,比如 curl/brew/wget。如果设置了这些变量,应用会直接通过该变量设置的代理访问目的地址。 因此我们可以使用如下的命令配置代理。

iTerm2快捷键小记

iTerm2 快捷键导图

快捷键

快捷键作用说明
command + f搜索&查找,如果输入搜索内容后,按下 tab 键,就会 iTerm 自动帮选中搜索关键词,并且自动的帮我们复制到了剪贴板中。如果输入的是 shift+tab,则自动将查找内容的左边选中并复制。按 esc 退出搜索。
command + r 或 ctrl + l清空屏幕,而且只是换到新一屏,不会像 clear 一样创建一个空屏
command + kclear,清空屏幕
command + d垂直分屏
command + shift + d水平分屏
command + ;查看历史命令
command + shift + h查看剪贴板历史,会自动列出输入过的命令
command + numbertab 标签窗口来回切换
command + option + ←/→ 或 command + [ / ]切换屏幕
ctrl + x第一次按时,移动光标至行首;再次按时,回到原有位置
ctrl + a到行首(Ahead of line)
ctrl + e到行尾(End of line)
ctrl + f/b前进后退(相当于左右方向键)
ctrl + u清除当前行(无论光标在什么位置)
ctrl + d删除光标当前位置的字符
ctrl + h删除光标之前的字符
ctrl + w删除光标之前的单词
ctrl + k删除光标当前位置到文本末尾的所有字符
ctrl + t交换光标当前位置的字符与前一个字符的位置
ctrl + c 或 ctrl + j 或 ctrl + o取消当前行输入的命令(中断操作)。重新起一行。
ctrl + y粘贴之前(ctrl +u/k/w)删除的内容
ctrl + p 或 !!上一条命令。调出命令历史中的前一条(Previous)命令,相当于通常的上箭头
ctrl + n下一条命令。调出命令历史中的下一条(Next)命令,相当于通常的上箭头
ctrl + s冻结终端操作(暂停脚本)
ctrl + q恢复冻结(继续执行脚本)
ctrl + r搜索命令历史。根据用户输入查找相关历史命令(reverse-i-search)
ctrl + l 或 command + r换到新一屏,创建一个空屏
ctrl + i 或 tab横行制表符,在命令行中补齐指令
双击选中单词
三击选中整行
四击智能选择
!word重复运行最近一条以“word”开头的指令,如!ls 或 !l
!$调用上一条指令的最后一个参数作为当前指令对象,如,假设上一条指令为: ls abc.txt bbc.txt 那么, vi !$ 相当于: vi bbc.txt
!number调用执行指定编号的历史记录指令,如!2, !11

原文档: