最新文章
1, MySQL生成随机数的函数 RAND()select RAND();
0.10994928061026081
2, 获取上面那个随机数以后,便可以通过 CEILING() 向上取整 或 FLOOR() 向下取整,以获取随机整数。CEILING向上取整:SELECT CEILING(RAND() * 10);
RAND() 函数生成 0 到 1 之间的随机小数,乘以 10 后得到 0 到 10 之间的随机小数,然后使用 CEILING() 函数向上取整为整数,得到 1 到 10 之间的随机整数。FLOOR向下取整:SELECT FLOOR(RAND() * 10) + 1;
RAND(
location 匹配~ #匹配一个正则表达式,区分大小写
~* #匹配一个正则表达式,不区分大小写
^~ #匹配普通字符,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= #进行普通字符精确匹配
@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
演示:location = / {
# 只匹配"/"
}
location / {
# 匹配所有请求,长字符或者正则表达式会优先匹配
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并
MainRule例子:MainRule "str:--" "msg:mysql comment (--)" "mz:BODY|URL|ARGS|$HEADERS_VAR:Cookie" "s:$SQL:4" id:1007;
MainRule的匹配模式有:str:字符串
rx:正则表达式
d:libinj_xss:libinjection检测为xss
d:libinj_sql:libinjection检测为sql注入
”str:--”,代表匹配 -- 这个字符。"msg:mysql comment (--)" 用于描述规则。"mz:BODY|URL|ARGS|$HEADERS_VAR
1, rewrite 介绍rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。rewrite 在 server 块中针对所有的请求,location 中则针对单个匹配路径的,还可以在 If 条件块中使用。基本语法:rewrite regex replacement [flag];
regex: 正则表达式语句进行规则匹配replacement: 将正则匹配的内容替换成replacementflag: last | break | redirect | permanentlast : 本条规则匹配完成后,继
介绍一个 Koa.js 的 SESSION 的中间件安装npm install koa-session
例子const session = require('koa-session');
const Koa = require('koa');
const app = new Koa();
app.keys = ['some secret hurr'];
const CONFIG = {
key: 'koa:sess', //cookie key (default is koa:sess)
maxAge: 86400000, // cookie的过期时间 maxA
介绍koa-body 是一个可以帮助解析 http 中 body 的部分的中间件,包括 json、表单、文本、文件等。还有一个常用的类似扩展 koa-bodyparser对比其中,koa-bodyparser 不可以直接处理文件,需要上传文件的时候,还需要引用另外一个中间件 koa-multer,项目地址和使用数量如下:koa-body Used by 31.6khttps://github.com/dlau/koa-bodykoa-bodyparser Used by 73.1k https://github.com/koajs/bodyparser代码示例// 初始化
const koa
简介
Node.js 的 JSON Web Token 模块有很多,我选择使用 jsonwebtoken。
项目地址: https://www.npmjs.com/package/jsonwebtoken
安装
npm install jsonwebtoken --save
用法
const jwt = require("jsonwebtoken")
const secret = "some word";
let payload = {};
payload.data = data || {}; //token 中包含的数据
payload.ctime = (new Date(
一,Fetch API 介绍
Fetch API提供了一个 JavaScript 接口,用于访问和操纵HTTP的请求和响应等。提供了一个全局 fetch()方法来跨网络异步获取资源。
fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。
二,基本用法:
fetch('https://test.com/api/info')
.then(response = response.json())
.then(json = console.log(json))
.catch(err = console.log('Reque
SSH 密码登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh user@xxx.xxx.xxx.xx
expect "*assword:*"
send "$password\r"
expect "Last*"
interact
SSH 证书登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh -i /Users/user/Cert/id_rsa user@xxx.xxx.xxx.xx -p 3002
简介
Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。
安装
npm install nodemailer --save
代码示例:
const nodemailer = require('nodemailer');
const config = {
smtp: {
host: "smtp.163.com",
username: "123123123@163.com",
password: "123123123"
}
};
常用的Node.js图片处理模块,有node-image、sharp和jimp。node-image很轻量,但是处理gif有点问题,更新还有点慢了。sharp跨操作系统部署的时,常常还需要编译一下。所以,jimp也是一个很好的选择。介绍:An image processing library for Node written entirely in JavaScript, with zero native dependencies.看这个官方介绍也说了,完全使用Node写的的库,无原生依赖。 支持图片类型bmp、gif、jpeg、png和tiff。安装:npm install --save j
简介:cheerio 是一个HTML解析器,cheerio实现了核心jQuery的子集。常用来解析采集来的HTML数据。安装:npm install cheerio
基础使用:const cheerio = require('cheerio');
var htmlString = ` ul id="fruits"
li class="apple" 苹果 /li
li class="orange" 橙子 /li
li class="pear" 梨 /li
/ul `;
$ = cheerio.load(htmlString);
$('.apple', '#fruits'
nginx 错误日志 nginx accept() failed (24: Too many open files)
原因是 Linux 设置了软硬文件句柄和打开文件的数目,你可以使用 ulimit 命令来查看这些限制。什么是ulimit?ulimit 描述符用于限制用户打开的文件数量,让单个用户不至于打开较多的文件,导致系统奔溃或者资源不足的情况。Linux中一切皆文件,所以文件的含义是很广的。unlimit 还可以限制所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户
nginx.confload_module modules/ngx_http_js_module.so;
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
修改配置文件:/etc/ssh/sshd_config#ClientAliveInterval 0
#ClientAliveCountMax 3
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval 0指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 客户端响应, 就保持连接了。ClientAliveCountMax 3表示服务器发出请求后客户端没有响应的次数达到3次以后, 就自动断开。
1. 登录到服务器,生成 SSH 的密钥和公钥
ssh-keygen -t rsa
将公钥复制到 authorzied_keys 文件
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
修改 authorized_keys 权限为 644,.ssh 权限为700
chown -R 700 ~/.ssh
chown -R 644 ~/.ssh/authorized_keys
ls -a .ssh #查看用户权限
备注,生成的证书不留空证书密码的话,别人有证书也无法登录。
然后,下载服务器上生成的 ~/.ssh/id_rsa 私钥文件到本地。
2. 修改服
正常情况下载视频:ffmpeg -i m3u8-path -c copy OUTPUT.mp4
ffmpeg -i m3u8-path -vcodec copy -acodec copy OUTPUT.mp4
ffmpeg -i https://test.com/playlist.m3u8 -c copy OUTPUT.mp4
下载加密的 m3u8:1. playlist.m3u8的文件#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENC
chmod 修改项目文件夹的权限以后,git status 发生了大量变化的文件。原因是 Git 不仅能够管理文件的版本,而且能够管理对文件的访问权限。通常,一个文件的访问权限可以分为xrw,这些属性也被纳入到Git库的管理。修改文件的访问权限,也是对git库中文件的 modify,执行git status 会看到变化。filemode 简介Git对文件的访问权限的管理与配置选项core.filemode有关。core.filemode选项默认true,即区分文件的执行权限,校验Git的Index中和工作目录中的文件权限。查看 filemode 选项git config --get core.
ctx.request.ip请求远程地址。 当 app.proxy 设置为 true 时,支持 X-Forwarded-Host。1, 在 Nginx 反向代理配置 proxy_pass 的部分添加这样一行。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;2, 在 Koa 应用里设置 app.proxy 为 true。X-Forwarded-For 定义X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址,这个消息首
npm install sharp --unsafe-perm
sharp@0.28.1 install /space/www/cn_restfulapi/node_modules/sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
sharp: Downloading https://github.com/lovell/sharp-libv
所有标签