分类目录归档:未分类
漫谈获取客户端真实IP
声明:本文是以Nginx和PHP的交互过程来说明具体问题。
以下分两个部分来探讨
客户端参数是如何传递到服务器应用程序中的
一个完整简易的Http请求Request/Response过程:
服务器接收到客户端Http请求,选择CGI script来处理请求, 通过meta-variable来传递请求数据, 将客户端请求转为一个CGI请求,执行script, 把CGI响应转为客户端响应。
继续阅读
Mac Safari调试工具介绍
浏览器调试工具当然首推chrome, 但是有些偶尔使用一下Safari(比如IPv6热点下Chrome访问不了站点),发现Safari调试页面请求真实“难用“,每次发现都不知道怎么用,捣鼓半天,特意记录下。
说明:
MacOS Version: 10.12.5
Safari Version: 10.1.1
继续阅读
密码保护:Mac下登录管理员后文件和应用程序不可访问
给Linux服务器普通账号添加root权限
一台Linux服务器M上的一个普通账号a,想获得root账号的权限。我听到的有以下两种表述:
表述一:XX管理员,请帮忙给机器M下账号a添加root权限;
表述二:XX管理员,请帮忙给机器M下账号a添加sudo权限;
继续阅读
IPv6地址转为ip2long
由php curl函数请求异常引发的思考
也算是百年一遇的一个现象,调用一个接口服务(假如:url = ‘http://i.niliu.me/xx/xx/xx’), 以下两种方式都正常返回:
0、通过浏览器地址栏发起请求。【不区分浏览器】
1、通过linux下curl命令发送请求。
curl 'http://i.niliu.me/xx/xx/xx'
但是,通过php curl函数请求返回500错误信息。(无论是单个curl请求,还是多个请求curl multi)
继续阅读
记一次对MC取数据时间不敏感Debug过程
故障描述:客户端线上页面偶现白页
Debug 过程流
0、第一反应是部分服务器挂了,很快排除。
1、CURL请求页面数据API,一直有数据。跟端上沟通,端上会有超时出现白页的情况。查接口果然超时。
2、如何处理?第一反应是如何做性能优化,而不是为什么会超时。当然,性能优化前提也是要分析超时原因,即性能瓶颈。【事后来看第一时间问为什么会超时的思维更高效】
继续阅读
phpredis zRangeByScore取全量数据用法
我们首先看下redis-cli下ZRANGEBYSCORE的用法[这里redis命令都用大写]:
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集key中score在min和max直接的成员(默认闭区间[min, max],可用符号(min, (max来指定为开区间),按score递增排序。可选参数WITHSCORES决定是否要返回score。可选参数LIMIT指定返回偏移量后的数量,不指定则返回全量。
继续阅读
PHP或运算的一个浅显Bug
前几天赶项目,遍历一组数据,类型是8或9的单独处理,当时是这样写的:
// 片段一 $type = '8'; if ($type != 8 || $type != 9) { echo 'do job_b' , PHP_EOL; } else { echo 'do job_a' , PHP_EOL; }
以上,期望输出”do job_a”, 但是输出的却是”do job_b”, 当时觉得很费解,无赖时间比较紧就换了一个写法:
继续阅读