Nginx concat模块减轻http请求连接数

nginx_concat_module是淘宝开发的基于Nginx减少HTTP请求数量的扩展模块,主要是用于合并减少前段用户Request的HTTP请求的数量。

taobao.com使用concat_module 进行css样式合并

使用concat_module进行css样式合并

继续阅读 »

Nginx 让浏览器告诉你负载均衡分到了哪台服务器

在大型网站的架构中,通常需要多台web服务器同时为用户服务,那么,如何直观地了解代理将请求转向了哪台机器呢?

幸运的是,我们可以通过Nginx的add_header指令配合Firefox的插件header spy相结合来实现上面提到的问题。

首先,修改nginx的配置

继续阅读 »

负载均衡软件比较(HA/LVS/Nginx)

分类:Performents分类:Lvs/HaNginx的优点:
性能好,可以负载超过1万的并发
功能多,除了负载均衡,还能作Web服务器,而且可以通过Geo模块来实现流量分配
社区活跃,第三方补丁和模块很多
支持gzip proxy

缺点:
不支持session保持
对后端realserver的健康检查功能效果不好。而且只支持通过端口来检测,不支持通过url来检测
nginx对big request header的支持不是很好,如果client_header_buffer_size设置的比较小,就会返回400bad request页面。

继续阅读 »

Nginx 支持PATH_INFO

在nginx上的站点添加如下内容:

  1. ######################################################################
  2. location ~ \.php
  3. {
  4.         fastcgi_index index.php;
  5.         fastcgi_pass 127.0.0.1:9000;
  6.         include fcgi.conf;
  7.         set $path_info "";
  8.         set $real_script_name $fastcgi_script_name;
  9.         if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
  10.                 set $real_script_name $1;
  11.                 set $path_info $2;
  12.         }
  13.         fastcgi_param SCRIPT_FILENAME /linuxany/$real_script_name;
  14.         fastcgi_param SCRIPT_NAME $real_script_name;
  15.         fastcgi_param PATH_INFO $path_info;
  16.  
  17. }
  18. ######################################################################

Nginx 502 Bad Gateway错误及解决方案收集

1.FastCGI worker进程数是否不够

通过命令查看服务器上一共开了多少的 php-cgi 进程

ps -fe |grep "php" | grep -v "grep" | wc -l

使用如下命令查看已经有多少个php-cgi进程用来处理tcp请求

netstat -anop | grep "php" | grep -v "grep" | wc -l

接近配置文件中设置的数值,表明worker进程数设置太少

继续阅读 »

Apache 记录代理后的用户来源ip

分类:Apache前端nginx代理设置:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

后端apache设置:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\"\"%{User-Agent}i\"" common

就可以接收到源ip了。

Nginx 性能优化(突破十万并发)

nginx配置文件常用优化:

worker_processes 8;

nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。

worker_rlimit_nofile 102400;

这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。

继续阅读 »


返回顶部