nginx
配置中使用“$”
geo $KK {default"$" ; }
set $ss $kk ;
平滑升级
kill -USR2 8936 (master) 创建新的master worker
kill -WINCH 8936 (master) 停止旧的worker
kill -QUIT 8936 (master) 停止旧的master createnewworker () { masternum1=`ps -ef |grep nginx |grep master |wc -l` pidnum2=`ps -ef |grep nginx |grep master |awk '{print $2}'` if [ $masternum1 -eq 1 ];then echo "one master, update master..." kill -USR2 $pidnum2 sleep 1 kill -WINCH $pidnum2 sleep 1 kill -QUIT $pidnum2 sleep 1 echo "New worker create success" ps -ef |grep 'nginx: ' |grep -v grep elif [ $masternum1 -eq 0 ];then echo "no master, start master..." /usr/local/sms/sbin/nginx -c /usr/local/sms/conf/nginx.conf sleep 3 ps -ef |grep 'nginx: ' |grep -v grep elif [ $masternum1 -eq 2 ];then echo "two master, kill old worker..." pidnum2=`cat /usr/local/sms/logs/nginx.pid.oldbin` kill $pidnum2 sleep 1 pidnum2=`ps -ef |grep nginx |grep master |awk '{print $2}'` kill -USR2 $pidnum2 sleep 1 kill -WINCH $pidnum2 sleep 1 kill -QUIT $pidnum2 sleep 1 echo "New worker create success" ps -ef |grep 'nginx: ' |grep -v grep elif [ $masternum1 -gt 2 ];then echo "Create new worker is Faild ..........." sleep 3 ps -ef |grep 'nginx: ' |grep -v grep fi }
Download nginx.vim to ~/.vim/syntax/
add this line to ~/.vim/filetype.vim:
au BufRead ,BufNewFile /etc/nginx/*,/usr/local/nginx/conf/* if &ft == '' | setfiletype nginx | endif
内存对齐
#define ngx_align(d, a) (((d) + (a - 1)) & ~(a - 1)) 将 m 对其到内存对齐地址 align这是一个常见的宏\R\N
功能:把d已a为最小单位对齐。d为要操作的目标,a为对齐单位,2的n次方。\R\N
简介:((d) + (a - 1))的结果就是如果d小于a的低几位(log2 a位)部分如果不是0,就规整为a。用& ~(a - 1)操作,把低位设成0。总的结果就是,把d规整为a的倍数,不足a的1倍的部分则补足为1(类似与近似运算时的1进制)。从而保证align(d,a)的低log2 a位为零。
比如把12和2规整为8的倍数(2进制第三位对齐)。12=8+4,低3位部分4规整为8,algn(12,8)=16。24本身就是8的倍数,规整后还是24。
offsetof
#define offsetof(type,member) (size_t)&(((type *)0)->member)
访问目录文件
client_max_body_size 100m ;
client_body_buffer_size 100000k ;
location /{
autoindex on ;
autoindex_localtime on ;
autoindex_exact_size off ;
root $dir ;
}
打印body
location /test {
content_by_lua '
ngx.req.read_body()
local args = ngx.req.get_post_args()
for key, val in pairs(args) do
ngx.log(ngx.INFO,key.. val )
end
';
}
nginx打印
/*
* supported formats:
* %[0 ][width ][x ][X ]O off_t
* %[0 ][width ]T time_t
* %[0 ][width ][u ][x|X ]z ssize_t/size_ t
* %[0 ][width ][u ][x|X ]d int/u_int
* %[0 ][width ][