Nginx的使用记录
1. Nginx 使用什么算法来实现负载均衡它能实现基于连接数的负载均衡吗?Nginx 使用简单的轮巡算法,所以无法做基本链接计数的负载均衡。这个可能会在将来的版本中有所改变。2. 某些东东不工作(U
1. Nginx 使用什么算法来实现负载均衡它能实现基于连接数的负载均衡吗?
Nginx 使用简单的轮巡算法,所以无法做基本链接计数的负载均衡。这个可能会在将来的版本中有所改变。
2. 某些东东不工作
(URL 重写,代理,路径,...)
例如:如URL 重写(rewrite )不工作了或者是unix 的路径(/$PATH)的问题云云... 请仔细阅读 [NginxDebugging] 并且 逐行 查看错误日志。
如果你没找到错误 打起精神 试着到IRC 或邮件列表里说明一下你碰到的问题。
3. 正则表达式匹配,其中:代码:
CODE:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
4. 什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
5. Nginx 反向代理的特色
1>功能强大,性能卓越,运行稳定。
2>配置简单灵活。
3> 能够自动剔除工作不正常的后端服务器。
4> 上传文件使用异步模式。
5> 支持多种分配策略,可以分配权重,分配方式灵活。
6. Nginx 反向代理的传输方式
浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header )先收到nginx 上,然后nginx 再把这个请求发到后端, 后端处理完之后把数据返回到nginx 上,nginx 将数据流发到浏览器。
7. Redmine 是用Ruby 开发的基于web 的项目管理软件,是用ROR 框架开发的一套跨平
台项目管理系统,据说是源于Basecamp 的ror 版而来,支持多种数据库,有不少自己独特的功能,例如提供wiki 、新闻台等,还可以集成其他版本管理系统和BUG 跟踪系统,例如Perforce 、SVN 、CVS 、TD 等等。这种 Web 形式的项目管理系统通过“项目(Project )”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一
,起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。
8. RoR 是Ruby on Rails的缩写。Ruby on Rails是一个用于编写网络应用程序的框架,
它基于计算机软件语言Ruby ,给程序开发人员提供强大的框架支持。Ruby on Rails包括两部分内容:Ruby 语言和Rails 框架。
9. Wiki 一词来源于夏威夷语的“wee kee wee kee”, 发音wiki, 原本是“快点快点”的意思,
被译为“维基”或“维客”。一种多人协作的写作工具。Wiki 站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。Wiki 也指一种。这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作。
10. 网页文本编辑器
1)需要到 下载kindeditor 插件
2)
3)
var editor ;
KindEditor . ready (function (K) {
editor = K.create ('textarea[name="content"]', {
resizeType : 1,
allowPreviewEmoticons : false ,
allowImageUpload : false ,
afterBlur : function () { this . sync (); }
});
});
4) //发送Email 函数
function smtp_mail ( $sendto_email, $subject, $body,
$extra_hdrs, $user_name, $test) { //
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
// $mail->SMTPSecure = 'ssl';//GMAIL的SMTP 需要用SSL 连接 $mail->Host = 'smtp.zkey.cc' ; //
,SMTP servers smtp.qq.com smtp.zkey.cc
$mail->SMTPAuth = true ; //
turn on SMTP authentication
$mail->Port = 25; // 25 143
// //增加(企业)
// $mail->Port = 587; // set the
SMTP port for the GMAIL server
// //增加结束
$mail->Username = 'service@zkey.cc';
// SMTP username 注意:普通邮件认证不需要加 @域名
943449551@qq.com service@zkey.cc
$mail->Password = 'web123!@#'; //
SMTP password qq943449551 web123!@#
$mail->From = $user_name; // 发件人
邮箱 service@zkey.cc $user_name
$mail->FromName = 'e 调研' ; // 发件人 ,
比如xxx 网 www.emailtest.com
$mail->CharSet = "UTF-8" ; // 这
里指定字符集!
$mail->Encoding = "base64" ;
$mail->AddAddress($sendto_email, " $user_name" ); //
收件人邮箱和姓名
$mail->AddReplyTo("service@zkey.cc", " 中科易研" ); //收件人回复时回复到此邮箱, 可以多次执行该方法
//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件1
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //附件2
$mail->IsHTML(true ); //
send as HTML
$mail->Subject = $subject;
// 邮件内容 可以直接发送html 文件
$mail->Body = $body;
$mail->AltBody = ' 需要支持HTML 的邮件客户端才能正常显示' ;
if ($test == 2){
var_dump($mail); die ;
}else {
,return $mail->Send();
}
}
// // 发送Email 函数结束
11. 数组
1. 定义一个数组
$arr = array();
2. 添加无键名的元素
$arr[] = “11”;
3. 添加有键名的元素
$arr[3] = “11”;
4. 显示数组的值
echo $arr[1];
5. 删除数组中的一个值
unset($arr[3]);
6. 删除数组
unset($arr);
7. PHP 函数range()快速创建数组
$ass = range(a,z);
表示该数组从a 开始,z 结束。
12. 数组的遍历
$ss = (“1”, “2”, “3”, “4”)
1. 只取值不取键名
foreach($ss as $value){
echo $value;
}
2. 只取值和键名
foreach($ss as $key => $value){
echo $value;
}
13. 可变变量
当某一变量不确定具体名称时,可以使用可变变量。
$person = “9岁”;
$$person = “小华”;
echo $person ${$person }; ==》》小华 9岁
14. 外部变量
在程序中定义或者产生的变量称为内部变量;
由 HTML表单、URL 或者外部程序产生的变量称为外部变量可以通过 $_GET,$_POST获取外部变量的值。
,15.cookie
1. 创建、更新cookie
setCookie($cookieName,$value,time() 秒数) ;
实例:setcookie("UserName","zs",time() 2*7*24*3600);
2. 读取cookie
$_cookie[$cookieName];
实例:$uName=$_COOKIE['UserName'];
3. 删除指定cookie
setcookie($cookieName,value,time()-秒数) ; //或者
setcookie($cookiename, '');
//或者
setcookie($cookiename, NULL);
实例:setcookie("UserName","zs",time()-3600);
4. 删除所有cookie
foreach($_COOKIE as $key=>$val){
setcookie($key,"",time()-100);
}
16.session
1.session 赋值
Session_Start();
$_SESSION["name"]="value";
2. 取消session
session_start();
session_unset();
session_destroy();
,3. 读取session
session_start();
echo "登记的用户名为:".$_SESSION["username"]; //输出 登记的用户名为:nostop
4. 检测session 是否存在
session_start();
if(!session_is_registered("gender")){ //判断当前会话变量是否注册 session_register("gender"); //注册变量
}
$gender="女";
echo $_SESSION['gender']; //女
5. 存取当前会话名称 session_name
$sessionName = session_name(); //取得当前 Session 名,默认为 PHPSESSID
$sessionID = $_GET[$sessionName]; //取得 Session ID
session_id($sessionID); //使用 session_id() 设置获得的 Session ID
17. 504 Gateway Time-out问题
常见于使用nginx 作为web server的服务器的网站
一般看来, 这种情况可能是由于nginx 默认的fastcgi 进程响应的缓冲区太小造成的, 这将导致fastcgi 进程被挂起, 如果你的fastcgi 服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
,现在的网站, 尤其某些论坛有大量的回复和很多内容的

, 一个页面甚至有几百K
默认的fastcgi 进程响应的缓冲区是8K, 我们可以设置大点
在nginx.conf 里, 加入:
fastcgi_buffers 8 128k
这表示设置fastcgi 缓冲区为8×128k
当然如果您在进行某一项即时的操作, 可能需要nginx 的超时参数调大点, 例如设置成60秒:
send_timeout 60;
调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错, 但是也可能是由于其他的原因, 目前关于nginx 的资料不是很多, 很多事情都需要长期的经验累计才有结果。
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 32 4k;
proxy_busy_buffers_size 64k;
统计同一字段不同值出现次数
select sex,count (*) c from ea_userinfo group by sex
注释:sex 所要查询的字段;c 相当于orecal 的伪列,或者列别名
select 字段, count (*) 伪列 from 表名 group by字段
,比如方法A 和B 同属于一个类C, A调用B:
class C{
function B(){
return 1;
}
function A(){
$result=self::B();
}
}
Mysql

按某一字段进行求和统计
select prov_id,sum (prov_num) c from ea_prov_count group by prov_id
创建数据库表(如果临时表则 CREATE TEMPORARY TABLE 表名 )
DROP TABLE IF EXISTS ea_prov_count;CREATE TABLE IF NOT EXISTS ea_prov_count(
id int(11) NOT NULL AUTO_INCREMENT,
prov_id int(11) NOT NULL ,
prov_name varchar(50) NOT NULL,
prov_num int(11) NOT NULL,
PRIMARY KEY(id)
);
,清空数据库表
TRUNCATE table 表名
如果query 方法不执行是,则换用 execute 方法。
Highcharts 的折线图
$.post("/index.php/Home/Guest/showCURLoad",{"user_id":user_id}, function (bakdata, backstatus) {
if (backstatus == "success" ) {
//alert(bakdata);
var data = [];
var db = bakdata.replace (/]/g, '];');
var arr = db . split (";" );
for (i = 0; i < arr . length -1; i ){
var jsonarray =eval (arr [i ]);
for (var j =0; j var jsonobj = jsonarray [j ]; for (var x in jsonobj ){ data . push (eval (jsonobj [x ])); } } } var json = eval (data ); //console.log(data); $('#cur_regi'). highcharts ({ //去除官方地址 credits : { enabled : false }, //图表类型 chart : { type : 'line' }, //名称 title : { text : ' 注册量模拟' }, //int型 xAxis :{ labels :{ step :2 } }, //纵坐标名称 yAxis : { title : { text : ' 注册' } }, //具体的数据个数 series : [{ name : ' 今天' , data :json }, ] }); } }); Highcharts 饼图 $.post("/index.php/Home/Guest/allRegGender",{"user_id":user_id}, function (bakdata, backstatus) { if (backstatus == "success" ) { //alert(bakdata); var data = [];