nginx配置中location匹配规则详解

一、概述 nginx官方文档给出location语法如下: location [=||*|^~] uri { … } 其中,方括号中的四种标识符是可选项,用来改变请求字符串和uri的匹配方式。uri是待匹配的请求字符串,可以是不包含正则的字符串,这种模式被称为“标准的uri";也可以包含正则,这种模式被称为"正则uri",如下: 1 2 location ~ .*\.(php|php5)?$ { } 二、四种可选的标识符 标识符 描述 = 精确匹配;用于标准uri前,要求请求字符串和uri严格匹配。如果匹配成功,就停止匹配,立即执行该location里面的请求。 ~ 正则匹配;用于正则uri前,表示uri里面包含正则,并且区分大小写。 * 正则匹配;用于正则uri前,表示uri里面包含正则,不区分大小写。 ^ 非正则匹配;用于标准uri前,nginx服务器匹配到前缀最多的uri后就结束,该模式匹配成功后,不会使用正则匹配。 无 普通匹配(最长字符匹配);与location顺序无关,是按照匹配的长短来取匹配结果。若完全匹配,就停止匹配。 备注: 1、如果uri里面包含正则表达式,就必须使用或*标识符; 2、针对和匹配标识符,可以在前面加上!来取反,如下: !~ 表示正则不匹配,区分大小写。 !~ 表示正则不匹配,不区分大小写。 2.1 “=”精准匹配案例 1 2 3 location = /login { # 精确匹配 /login ,匹配成功后,立即结束 } 2.2 “~”区分大小写正则匹配案例 1 2 3 location ~ /images/ { #正则匹配,区分大小写,匹配成功后,立即结束 } 2.3 “~*”不区分大小写正则匹配案例 1 2 3 location ~* /images/ { #正则匹配,不区分大小写,匹配成功后,立即结束 } 2.4 “^~” 不进行正则匹配的标准匹配 ...

2018年12月4日 · 2 分钟 · 浅忆

Nginx使用auth_basic 保护wordpress 登录页面

有时候看日志经常看到很多扫描工具啊、爆破等等、这里突然想到可以用Nginx自带的auth_basic 来给登录页面 wp-login.php再做一个验证,这样可以避免扫描工具一直扫。 1、生成认证的用户名与密码 这一点在这篇 nginx添加认证,使通过密码访问页面 文章中说过了,就不再写了 2、修改nginx 伪静态 增加以下 1 2 3 4 5 6 7 8 9 location = /wp-login.php { auth_basic "Protected Elasticsearch"; auth_basic_user_file /www/nginx_passwd; #设置php解析php,不然认证成功后就是直接下载php文件了,因为这里用了精准匹配,优先匹配 #这里根据自己的情况来设置,不知道怎么写就去看一下默认解析php的地方 fastcgi_pass unix:/tmp/php-cgi-72.sock; #fastcgi_index wp-login.php; include fastcgi.conf; } 3、重载 Ningx 1 service nginx reload

2018年12月4日 · 1 分钟 · 浅忆

GPG入门指南(加密签名)

我们平时都听过非对称加密,公钥和私钥,签名验证,但这些证书都是怎么得到的呢?本篇文章会解答这些问题。 背景介绍 加密的一个简单但又实用的任务就是发送加密电子邮件。多年来,为电子邮件进行加密的标准一直是PGP(Pretty Good Privacy)。程序员Phil Zimmermann特别为电子邮件的保密编写的PGP。 这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。 作为PGP的替代,如今已经有一个开放源代码的类似产品可供使用。GPG(Gnu Privacy Guard),它不包含专利算法,能够无限制的用于商业应用。 本文将会介绍文件加密,至于GPG的其他用途,比如邮件加密,请参考这个网站https://help.ubuntu.com 安装 本人使用mac电脑,因此使用brew安装的,很简单,打开终端,输入brew install gpg就行了,至于其他的平台,可以自行搜索。 1 2 3 4 5 bogon:~ XXXX$ brew install gpg ==> Downloading https://homebrew.bintray.com/bottles/gnupg-1.4.20.el_capitan.bot ######################################################################## 100.0% ==> Pouring gnupg-1.4.20.el_capitan.bottle.tar.gz ? /usr/local/Cellar/gnupg/1.4.20: 53 files, 5.4M 安装完成后,键入命令gpg --help: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 bogon:~ XXXX$ gpg --help gpg (GnuPG) 1.4.20 Copyright (C) 2015 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: ~/.gnupg 支持的算法: 公钥:RSA, RSA-E, RSA-S, ELG-E, DSA 对称加密:IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 压缩:不压缩, ZIP, ZLIB, BZIP2 语法:gpg [选项] [文件名] 签名、检查、加密或解密 默认的操作依输入数据而定 指令: -s, --sign [文件名] 生成一份签名 --clearsign [文件名] 生成一份明文签名 -b, --detach-sign 生成一份分离的签名 -e, --encrypt 加密数据 -c, --symmetric 仅使用对称加密 -d, --decrypt 解密数据(默认) --verify 验证签名 --list-keys 列出密钥 --list-sigs 列出密钥和签名 --check-sigs 列出并检查密钥签名 --fingerprint 列出密钥和指纹 -K, --list-secret-keys 列出私钥 --gen-key 生成一副新的密钥对 --delete-keys 从公钥钥匙环里删除密钥 --delete-secret-keys 从私钥钥匙环里删除密钥 --sign-key 为某把密钥添加签名 --lsign-key 为某把密钥添加本地签名 --edit-key 编辑某把密钥或为其添加签名 --gen-revoke 生成一份吊销证书 --export 导出密钥 --send-keys 把密钥导出到某个公钥服务器上 --recv-keys 从公钥服务器上导入密钥 --search-keys 在公钥服务器上搜寻密钥 --refresh-keys 从公钥服务器更新所有的本地密钥 --import 导入/合并密钥 --card-status 打印智能卡状态 --card-edit 更改智能卡上的数据 --change-pin 更改智能卡的 PIN --update-trustdb 更新信任度数据库 --print-md 算法 [文件] 使用指定的散列算法打印报文散列值 选项: -a, --armor 输出经 ASCII 封装 -r, --recipient 某甲 为收件者“某甲”加密 -u, --local-user 使用这个用户标识来签名或解密 -z N 设定压缩等级为 N (0 表示不压缩) --textmode 使用标准的文本模式 -o, --output 指定输出文件 -v, --verbose 详细模式 -n, --dry-run 不做任何改变 -i, --interactive 覆盖前先询问 --openpgp 行为严格遵循 OpenPGP 定义 --pgp2 生成与 PGP 2.x 兼容的报文 (请参考在线说明以获得所有命令和选项的完整清单) 范例: -se -r Bob [文件名] 为 Bob 这个收件人签名及加密 --clearsign [文件名] 做出明文签名 --detach-sign [文件名] 做出分离式签名 --list-keys [某甲] 显示密钥 --fingerprint [某甲] 显示指纹 请向 <gnupg-bugs@gnu.org> 报告程序缺陷。 请向 <i18n-zh@googlegroups.com> 反映简体中文翻译的问题。 这些帮助信息非常有用,下边演示的很多功能也是基于上边这些参数的。这里把他们列出来,方便在使用的时候查询。 如果能够显示上边的信息,说明GPG安装成功了 ...

2018年11月19日 · 6 分钟 · 浅忆

415.mysql利用mysqldump导出表结构和表数据

命令行下具体用法如下: mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 如果是windows,请到 bin 目录/新增环境变量 执行命令 1 2 3 4 5 6 7 8 #导出整个数据库结构和数据 mysqldump -h localhost -uroot -p123456 database > dump.sql #导出单个数据表结构和数据 mysqldump -h localhost -uroot -p123456 database table > dump.sql #导出整个数据库结构(不包含数据) mysqldump -h localhost -uroot -p123456 -d database > dump.sql #导出单个数据表结构(不包含数据) mysqldump -h localhost -uroot -p123456 -d database table > dump.sql

2018年11月5日 · 1 分钟 · 浅忆

分享几款PHP后门查杀软件

一、D盾_Web查杀 软件使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。引擎特别针对一句话后门,变量函数后门,${}执行 、preg_replace执行、call_user_func、file_put_contents、fputs等特殊函数的参数进行针对性的识别,能查杀更为隐藏的后门,并把可疑的参数信息展现在你面前,让你能更快速的了解后门的情况,还加入隔离功能,并且可以还原! D盾_Web查杀官方下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip 2、WebShellkiller WebShellkiller作为一款web后门专杀工具,不仅支持webshell的扫描,同时还支持暗链的扫描。这是一款融合了多重检测引擎的查杀工具。在传统正则匹配的基础上,采用模拟执行,参数动态分析监测技术、webshell语义分析技术、暗链隐藏特征分析技术,并根据webshell的行为模式构建了基于机器学习的智能检测模型。传统技术与人工智能技术相结合、静态扫描和动态分析相结合,更精准地检测出WEB网站已知和未知的后门文件。 WebShellkiller官方下载地址:http://edr.sangfor.com.cn/tool/WebShellKillerTool.zip 3、河马查杀 http://www.shellpub.com/ http://www.webshell.pub/ 4、百度WebShell检测 https://scanner.baidu.com/ 原文链接:https://www.hostloc.com/thread-484492-1-1.html

2018年10月22日 · 1 分钟 · 浅忆

一个Google 邮箱接收N个账号信件(非关联账户)

原理: 在收件人google邮箱地址使用「.」和「+」任意搭配使用规则在Gmail邮箱的帐号上做手脚,这样就不用申请账号了~ 比如 我的Gmail邮箱是 abc@gmail.com ...

2018年8月23日 · 1 分钟 · 浅忆

Chrome翻译慢与经常失败问题

上一篇说到家里宽带出问题导致只能用流量上网,这里又遇到另外个问题,在浏览英文网页时,用流量在Chrome根本不能翻译,即使本地开了科学上网,排查了一下,结果发现4G状态下Google翻译的域名也是被屏蔽的,所以把一下三个域名加入PAC或SwitchyOmega的自动给切换规则就好了。 把下面三个域名,添加到自动切换规则之后,不管是流量还是宽带都特别快。(或者是设置PAC规则) 1 2 3 \*.googletagmanager.com \*.google-analytics.com \*.translate.googleapis.com Ps:本来想用其他浏览器的,但是对比翻译起来还是习惯Chrome了~

2018年7月17日 · 1 分钟 · 浅忆

IDEA git 未提交代码被覆盖

刚刚写的代码忘记提交本地仓库而直接更新,导致写的代码不见了,百度了一番,看到了解决方案~ VCS--git--unstash changes 可以看到暂存列表,通过 view 查看代码,apply就是回到该版本,stage就是一个类似于暂存区的东西,可以将你未提交的改动暂存起来,相当于存档一样,然后可以去做别的事情,等做完之后可以读档一样把当时的状态恢复

2018年7月8日 · 1 分钟 · 浅忆

yum提示Another app is currently holding the yum lock

错误信息: Another app is currently holding the yum lock; waiting for it to exit… The other application is: yum Memory : 125 M RSS (1.3 GB VSZ) Started: Sun Jul 8 08:48:46 2018 - 03:43 ago State : Running, pid: 898 强制关掉yum进程: 1 rm -f /var/run/yum.pid

2018年7月8日 · 1 分钟 · 浅忆

VPS一键脚本收集

秋水逸冰 一键测试脚本bench.sh https://teddysun.com/444.html 秋水逸冰 Linux性能测试UnixBench一键脚本 https://teddysun.com/245.html 蜗牛789 一键测试脚本 https://www.wn789.com/13397.html 1、VPS测试 1 wget -qO- bench.sh | bash 测试VPS基础信息,以及下载速度,来自官网(https://bench.sh/) 2、国内测试 1 wget -qO- git.io/superbench.sh | bash 主要包括VPS硬件信息,国内节点测试,电信、联通、移动,来自老鬼 3、基础测试 1 2 3 4 5 中文版: wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh 英文版: wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench.sh && bash ZBench.sh #基于superbench脚本,增加了路由和ping测试,区别中英文 4、网速测试 1 wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh && chmod +x superspeed.sh && ./superspeed.sh #主要包括国内的一些节点进行专项测试,电信、联通、移动,来自老鬼 5、Ping测试 1 2 wget -N --no\-check-certificate https://raw.githubusercontent.com/FunctionClub/uPing/master/uping.py python uping.py #一款长时间ping测试py脚本 6、html5网速程序 1 https://github.com/adolfintel/speedtest #需要php环境,下载后解压即可运行,无须安装 ...

2018年7月8日 · 1 分钟 · 浅忆