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

分类:Nginxnginx配置文件常用优化:

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的值保持一致。

继续阅读 »

Nginx proxy_pass到$host的问题与解决方法

分类:Nginx在配置一个location的时候,希望使用一个变量如$host来指示nginx代理:

location /prog/ {
    proxy_pass http://$host;
}

如你想不到,这个配置是不能使用的,查看error.log,打出来的信息也无法帮助解决问题。

但相同情况下,root标签就工作得很好:

locatin /prog/ {
    root /dev/shm/$host;
}

继续阅读 »

LVS DR模式修改超时时间

分类:Lvs/Ha缺省的FIN_WAIT超时是120秒。如果你的服务都是非常短的连接,可以考虑减少FIN_WAIT的超时时间,例如60秒或者30秒。

# ipvsadm -Lcn |awk '{print $3}'|sort  |uniq -c |sort -rn
    548 FIN_WAIT
    456 NONE
     80 ESTABLISHED
      9 SYN_RECV
      2 CLOSE
      1 state
      1 entries

TCP状态为NONE的是持久性模板,它是记录来自同一IP地址的访问调度到同一服务器。
TCP状态为CLOSE的是已关闭连接。

继续阅读 »

Lighttpd 虚拟主机和多域名的配置

分类:Lighttpd Lighttpd也是一款轻巧不错的web服务器,和apachehttpserver一样,我最开始用lighttpd是在07年的时候,刚好lighttpd支持flv的流媒体播放和防盗链功能,所以就要用了起来。今天这里着重讲下如何配置多个虚拟主机和域名的设置,以Lighttpd的V1.7版本为例:

1、配置多个虚拟主机
打开Lighttpd安装目录下的etc/lighttpd.conf文件,在最后添加如下段:

$HTTP["host"] == "www.linuxany.com" {
    server.document-root = "/webapps/linuxany/website"
    server.errorlog = "/usr/local/lighttpd/logs/linuxany.com-error.log"
    accesslog.filename = "/usr/local/lighttpd/logs/linuxany.com-access.log"}

如果需要多个虚拟主机,则将上面的段复制设置多个即可。

继续阅读 »

Nginx upstream的5种权重分配方式

分类:Nginx1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:

upstream backend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}

继续阅读 »

Apache 在代理后显示正确的用户IP

分类:Apacheapache日志中默认有%h来指定来访客户端你的ip地址,但是如果客户端使用了代理上网则%h获得的ip地址会不准。可以设定 X-Forwarded-For 参数来获取客户端真实的ip地址

对于使用了反向代理的客户端,跟踪真实的ip地址

  1. %{X-Forwarded-For}i
  2.  
  3. LogFormat "%{X-Forwarder-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" linuxanyproxy
  4. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  5.  
  6. SetEnvIf X-Forwarder-For "^.*\..*\..*\..*" is-forwarder
  7.  
  8. CustomLog logs/access_log combined env=!is-forwarder
  9. CustomLog logs/access_log linuxanyproxy env=is-forwarder

继续阅读 »

Nginx:proxy_pass路径问题解决方案

分类:Nginx在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/

当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走
如果没有/,则会把匹配的路径部分也给代理走

location ^~ /blog/
{
    proxy_cache blog_cache;
    proxy_set_header Host blog.linuxany.com;
    proxy_pass http://blog.linuxany.com/;
}

如果请求的url是http://www.linuxany.com/blog/test.html
会被代理成http://blog.linuxany.com/test.html

继续阅读 »


返回顶部