开发者社区> cnbird> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

nginx 加速网站

简介: 一般情况下压缩后的html、css、js、php、jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的html,压缩后只剩下25k。
+关注继续查看

一般情况下压缩后的html、css、js、php、jhtml等文件,大小能降至原来的25%,也就是说,原本一个100k的html,压缩后只剩下25k。这无疑能节省很多带宽,也能降低服务器的负载。
在nginx中配置gzip比较简单
具体可见http://wiki.codemongers.com/NginxChsHttpGzipModule
一般情况下只要在nginx.conf的http段中加入下面几行配置即可

引用
   gzip  on;
   gzip_min_length  1000;
   gzip_buffers     4 8k;
   gzip_types       text/plain application/x-javascript text/css text/html application/xml;


重启nginx
可以通过网页gzip检测工具来检测网页是否启用了gzip
http://gzip.zzbaike.com/

 

 

expires起到控制页面缓存的作用,合理的配置expires可以减少很多服务器的请求
要配置expires,可以在http段中或者server段中或者location段中加入

引用
       location ~ /.(gif|jpg|jpeg|png|bmp|ico)$ {
           expires 30d;
       }


控制图片等过期时间为30天,当然这个时间可以设置的更长。具体视情况而定
比如

引用
       location ~ /.(wma|wmv|asf|mp3|mmf|zip|rar|swf|flv)$ {
               expires max;
       }


max表示过期时间为31 December 2037 23:59:59 GMT

 

 

nginx默认是不允许列出整个目录的。如需此功能,在location server 或 http段中加入

引用
autoindex on;



另外两个参数最好也加上去

引用
autoindex_exact_size off;  


默认为on,显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

引用
autoindex_localtime on;


默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

网站上的bug,某个页面访问的时候,会造成内存溢出,正常情况下一个php-cgi进程占用大概0.2% 约8M左右的内存,出问题的时候,某些php-cgi进程可能会占用掉几百兆。
因为一时无法找出那个页面出得错误,只好用脚本来kill掉异常的进程
只要一个php-cgi进程占用的内存超过 %1 就把它kill掉

引用
#!/bin/sh

PIDS=`ps aux|grep php-cgi|grep -v grep|awk '{if($4>=1)print $2}'`

for PID in $PIDS
do
echo `date +%F....%T` >> /usr/bash/phpkill.log
echo $PID >> /usr/bash/phpkill.log
kill -9  $PID
done


放到cron里每分钟执行一次

 

 

 

本文摘抄自 http://wiki.codemongers.com/NginxChsHttpLimit_zoneModule?highlight=(limit)
limit_zone   limit  $binary_remote_addr  10m;
server {
location /download/ {
limit_conn   limit  1;
}
limit_zone   limit  $binary_remote_addr  10m;
定义一个叫“limit”的记录区,总容量为 10M,以变量 $binary_remote_addr 作为会话的判断基准(即一个地址一个会话)。
您可以注意到了,在这里使用的是 $binary_remote_addr 而不是 $remote_addr。
$remote_addr 的长度为 7 至 15 bytes,会话信息的长度为 32 或 64 bytes。 而 $binary_remote_addr 的长度为 4 bytes,会话信息的长度为 32 bytes。
当区的大小为 1M 的时候,大约可以记录 32000 个会话信息(一个会话占用 32 bytes)。
limit_conn   limit  1;
指定一个会话最大的并发连接数。 当超过指定的最发并发连接数时,服务器将返回 "Service unavailable" (503)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Nginx 配置清单(一篇够用)
Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,其因丰富的功能集、稳定性、示例配置文件和低系统资源的消耗受到了开发者的欢迎。
0 0
Nginx:配置HTTPS网址加上绿锁头
Nginx:配置HTTPS网址加上绿锁头
0 0
深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」
深入浅出学习透析 Nginx 服务器的基本原理和配置指南「运维操作实战篇」
0 0
精华推荐 | 深入浅出学习透析Nginx服务器的基本原理和配置指南「Keepalive性能分析实战篇」
精华推荐 | 深入浅出学习透析Nginx服务器的基本原理和配置指南「Keepalive性能分析实战篇」
0 0
深入浅出学习透析Nginx服务器的基本原理和配置指南「Https安全控制篇」
深入浅出学习透析Nginx服务器的基本原理和配置指南「Https安全控制篇」
0 0
深入浅出学习透析Nginx服务器的基本原理和配置指南「负载均衡篇」
深入浅出学习透析Nginx服务器的基本原理和配置指南「负载均衡篇」
0 0
深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」
深入浅出学习透析Nginx服务器的基本原理和配置指南「进阶实践篇」
0 0
深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇」
深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇」
0 0
+关注
cnbird
阿里云安全专家,主要负责阿里云云产品安全。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
《Nginx 代理系统常用手册》
立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册
立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手
立即下载