正在加载...
分页: 2/4 第一页 上页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]

nginx静态压缩

[ 2010/01/19 02:35 | by selboo ]
在搭建squid网页加速的时候,对于大的css 或者js要进行压缩,然后再进行缓存,这样能够提高减小下载量提高页面响应速度。如果你用的是squid 3.0以前的版本并且用的是 ngnix server的话可能会碰到如下问题: 不用squid直接打开页面则客户端返回的是压缩的状态,如果启用squid加速会发现下载下来的页面不是压缩状态。这里面主要是没有启动ngnix 的静态缓存模块(ngx_http_gzip_static_module)导致。打开静态缓存问题就解决了
1.nginx编译选项
./configure --with-http_gzip_static_module
2.修改nginx.conf

gzip_static on;

gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6] \.";
gzip_vary on;


参考:
1.http://wiki.nginx.org/NginxHttpGzipStaticModule
2.http://bbs.chinaunix.net/viewthread.php?tid=1329820

Tags: ,

nginx启动关闭重启脚本

[ 2010/01/18 16:01 | by selboo ]
注意修改安装路径了

[code]#!/bin/bash
#
# Init file for nginx server daemon
#
# chkconfig: 234 99 99
# description: nginx server daemon
#

# source function library
. /etc/rc.d/init.d/functions

# pull in sysconfig settings
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

RETVAL=0
prog="nginx"

PAT=/usr/local/nginx
NGINXD=/usr/local/nginx/sbin/nginx
PID_FILE=/usr/local/nginx/nginx.pid
<
Tags: ,

Nginx状态监控总结

[ 2009/12/28 16:51 | by selboo ]
今天在整理编写nginx tips,简单的再次把nginx相关监控资料整理一下供大家参考,希望大家玩的开心,做出更强大的东西!

1、RRDTOOL+Perl脚本画图监控
先安装好rrdtool ,关于rrdtool本文不作介绍,具体安装请参照linuxtone监控版块.
#cd/usr/local/sbnin
#wget http://blog.kovyrin.net/files/mrtg/rrd_nginx.pl.txt
#mv rrd_nginx.pl.txtrrd_nginx.pl
#chmod a+x rrd_nginx.pl


#vi rrd_nginx.pl
//配置脚本文件设置好路径
#!/usr/bin/perl
use RRDs;
useLWP::UserAgent;

# definelocation of rrdtool databases
my $rrd ='/data/www/wwwroot/nginx/rrd';
# definelocation of images
my $img ='/data/www/wwwroot/nginx/html';
# defineyour nginx stats URL
my $URL ="http://219.232.244.13/nginx_status";
…………

【注】根据自己具体的状况修改相应的路径.
#crontab –e //加入如下
* * * * */usr/local/sbin/rrd_nginx.pl

重启crond后,通过配置nginx虚拟主机指到/data/www/wwwroot/nginx/html目录,通过crond自动执行perl脚本会生成很多图片.
http://xxx/connections-day.png即可看到服务器状态图。

2、官方Nginx-rrd 监控服务(多虚拟主机)(推荐)
网址:http://www.nginx.eu/nginx-rrd.html
此解决方案其实是基于上述监控方案的一个改进和增强,同样先安装好rrdtool这个画图工具和相应的perl模块再做如下操作:
# yum install perl-HTML*

先建立好生成的库存和图片存放录
#mkdir -p/data/www/wwwroot/nginx/{rrd,html}

#cd/usr/local/sbin
#wget http://www.nginx.eu/nginx-rrd/nginx-rrd-0.1.4.tgz
#tar zxvfnginx-rrd-0.1.4.tgz
#cd nginx-rrd-0.1.4
#cd etc/
#cp nginx-rrd.conf /etc
#cd etc/cron.d
#cp nginx-rrd.cron /etc/cron.d

#cd /usr/local/src/nginx-rrd-0.1.4/html
# cp index.php /data/www/wwwroot/nginx/html/

#cd /usr/local/src/nginx-rrd-0.1.4/usr/sbin
#cp * /usr/sbin/


#vi /etc/nginx-rrd.conf
#####################################################
#
# dirwhere rrd databases are stored
RRD_DIR="/data/www/wwwroot/nginx/rrd";
# dirwhere png images are presented
WWW_DIR="/data/www/wwwroot/nginx/html";
# processnice level
NICE_LEVEL="-19";
# bin dir
BIN_DIR="/usr/sbin";
# serversto test
#server_utl;server_name
SERVERS_URL="http://219.32.205.13/nginx_status;219.32.205.13
http://www.linuxtone.org/nginx_status;www.linuxtone.org""
//根据你的具体情况做调整.

SEVERS_URL 格式http://domain1/nginx_status;domain1   http://domain2/nginx_status;domain2
这种格式监控多虚拟主机连接状态:
重点启crond服务,仍后通过http://219.32.205.13/nginx/html/
即可访问。配置过程很简单!


配置过程很简单 ,你也可以试试!


3、CACTI模板监控Nginx
利用Nginx_status状态来画图实现CACTI监控
nginx编译时允许http_stub_status_module

# vi /usr/local/nginx/conf/nginx.conf
location/nginx_status {
stub_statuson;
access_logoff;
allow192.168.1.37;
deny all;
}


# kill-HUP `cat /usr/local/nginx/logs/nginx.pid`

# wgethttp://forums.cacti.net/download.php?id=12676
# tarxvfz cacti-nginx.tar.gz
# cpcacti-nginx/get_nginx_socket_status.pl /data/cacti/scripts/
# cpcacti-nginx/get_nginx_clients_status.pl /data/cacti/scripts/
# chmod755 /data/cacti/scripts/get_nginx*


检测插件
#/data/cacti/scripts/get_nginx_clients_status.plhttp://192.168.1.37/nginx_status


在cacti管理面板导入
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
Tags: , ,

Apache 内存暴增解决方法

[ 2009/12/14 08:37 | by selboo ]
前阵子总是发现 httpd 进程的使用内存总量居然达到了上百Mb,有时甚至上Gb,真是夸张。Apache 是架在 Squid 的后面,照理说不应该出现这种情况。通过排查,发现是 Apache 中开启了持续长连接导致。

Apache 进程的内存使用是 “递增/渐进” 式的,也就是在当前进程的 httpd 过程中,内存使用是持续增加的,也就是说在该进程退出之前,内存是持续增加的。主要是由于下面三个参数来控制。

KeepAlive On 设定是否要开启持续长连接,由于前面有 Squid,因此在这里把它打开

MaxKeepAliveRequests 50 在一次持续长连接中,最多允许接收几次请求,如果设置太大的话,很可能导致 httpd
进程持续消耗很多内存,因此可以选择一个适当的值,因为重新创建一个新的进程也是要有一定开销的

KeepAliveTimeout 5 设定一个长连接在没有活动后等待多久自动关闭,可以设置小一点,不过跟上面的类似,如果太小的话,也会导致频繁创建新的进程

现在,调整完上面的参数后,会发现 httpd 进程不再象以前那样狂吃内存了。

Tags: ,
点击在新窗口中浏览此图片

这个结构的优点:
1、可以使用nginx前端进行诸多复杂的配置,这些配置从前在squid是没法做或者做起来比较麻烦的,比如针对目录的防盗链。
2、nginx前端可以直接转发部分不需要缓存的请求。
3、因为nginx效率高于squid,所以某些情况下可以利用nginx的缓存来减轻squid压力。
4、可以实现url hash等分配策略。
5、可以在最前端开启gzip压缩,这样后面的squid缓存的纯粹是无压缩文档,可以避免很多无谓的穿透。
6、因为nginx稳定性比较高,所以lvs不需要经常调整,通过nginx调整就可以。
7、squid的文件打开数按默认的1024就绰绰有余,不过处理的请求可一个都不会少。
8、可以启用nginx的日志功能取代squid,这样做实时点击量统计时可以精确定位到url,不必要再用低效率的grep来过滤。
9、因为nginx的负载能力高于squid,所以在用lvs分流时可以不必分得特别均衡,出现单点故障的几率比较低。
Tags: ,
分页: 2/4 第一页 上页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]