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;
}

继续阅读 »

Nginx upstream的5种权重分配方式

分类:Nginx1、轮询(默认)

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

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

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

继续阅读 »

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

继续阅读 »

Schema: Nginx图片服务器的架构方案

分类:Nginx图片服务有两种问题,一是存储问题,二是访问量问题。
存储问题就是硬盘容量问题,花钱买硬盘就可以了,看似简单,但着实也是最苦的问题。按目前探索来看,最好的方式是:在任何时刻遇到硬盘空间不够时,买颗硬盘插上,最多改改配置,就能立刻利用;另外,硬盘要能充分利用,不然图片存储量大再加上备份,很恐怖,最好是每颗硬盘都用上100%的空间。
访问量也是个大问题,如果服务不允许防盗链,那么访问量会引起带宽、服务器压力等问题,有钱的话直接扔CDN,没钱或者有更多的钱,就自己做吧。根据垣古不变的真理“越老的图,访问量也相对较少”这一点,分成两大部分,一边处理最新的图片,一边处理老旧的图片。最新的图片访问量大,但存储量较少;老图片访问量低,但存储量大。
大概分析完了,开始制定方案。

继续阅读 »

Nginx:通过配置使全站页面变灰

分类:Nginx只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行:

<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>

就可以实现在IE及IE内核浏览器下,所有网站变灰色。

继续阅读 »

Nginx:防盗链配置

分类:Nginxlocation /images/ {
alias /data/images/;
valid_referers none blocked server_names *.linuxany.com linuxany.com ;
if ($invalid_referer) {return 403;}
}


返回顶部