面试或者笔试中,经常会出现一道题,那就是,统计nginx日志中,访问量前N个的IP地址。自问我对Linux还算是比较了解,知道过几个命令,但是组装起来用,确实是一门学问。以下是我盲写的执行结果执行结果,好像并不进入人意,不可能访问量最高的ip是9次。...查看全文

很多时候,我们会使用 PHP的$_SERVER数组,通过这个数组,可以获取一些服务器的变量信息。但是不同的模式下,这个全局数组是不一样的。比如,在web模式下,$_SERVER是获取的fastcgi_params,在cli模式下,获取的是环境变量(也就是常见的Linux 的export设置的)举个例子,我们要设置$_SERVER['AAAAA']='test_data'刚开始,不管web模式下,还是cli模式下,都是没有这个值的。web模式cli模式

更改nginx 的环境变量

找到fastcgi_params文件,一般是和nginx.conf在同一个目录
$ sudo nginx -s reload
然后刷新页面

更改cli模式先的环境变量

$ vim ~/.bashrc
$ source ~/.bashrc
$ php -r 'var_dump($_SERVER["AAAAA"]);';
查看全文

nginx从1.9.0开始,支持动态拓展,并且新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。

用法

stream模块用法和http模块差不多,关键的是语法几乎一致。熟悉http模块配置语法的上手更快,以下是一个配置了tcp负载均衡的例子, 有 server,upstream块,而且还...查看全文