http://apps.hi.baidu.com/share/detail/22360588 nginx 优化(突破十万并发)
Nginx+PHP是高效、高速、高性能的完美组合,但是要发挥其性能极致还是需要一些手段进行优化,使得这个组合结合更加紧密。在Nginx中启用fastcgi cache就可以有效提高PHP网站的访问速度。
配置参数:
http里:
1. fastcgi_cache_path /www/php_cache levels=1:2 keys_zone=cache_php:30m inactive=1d max_size=10g;
server里:
1. location ~ .*\.php?$
2. {
3. #fastcgi_pass unix:/tmp/php-cgi.sock;
4. fastcgi_pass 127.0.0.1:9000;
5. fastcgi_index index.php;
6. include fcgi.conf;
7. #以下是fastcgi_cache的配置
8. fastcgi_cache cache_php;
9. fastcgi_cache_valid 200 302 1h;
10. fastcgi_cache_min_uses 1;
11. fastcgi_cache_use_stale error timeout invalid_header http_500;
12. fastcgi_cache_key $host$request_uri;
13. }
配置说明
fastcgi_cache_path:fastcgi_cache缓存目录,可以设置目录层级,比如1:2会生成16*256个字目录,cache_php是这个缓存空间的名字,cache是用多少内存(nginx直接放内存,提高访问速度),inactive表示默认失效时间,max_size表示最多用多少硬盘空间。
fastcgi_cache_valid:定义哪些http头要缓存
fastcgi_cache_min_uses:URL经过多少次请求将被缓存
fastcgi_cache_use_stale:定义哪些情况下用过期缓存
fastcgi_cache_key:定义fastcgi_cache的key,示例中就以请求的URI作为缓存的key,Nginx会取这个 key的md5作为缓存文件,如果设置了缓存哈希目录,Nginx会从后往前取相应的位数做为目录fastcgi_cache:用哪个缓存空间
清除缓存
指定删除某一URL的php文件的缓存的PHP程序
主要代码如下:
1. $md5md5 = md5($url);
2. $cacheFile = '/www/php_cache/' . substr($md5, -1, 1) . '/' . substr($md5, -3, 2) . '/' . $md5;
3. if (!file_exists($cacheFile)) {
4. exit('缓存不存在。');
5. }
6. if (@unlink($cacheFile)) {
7. echo '清除缓存成功。';
8. } else {
9. echo '清除缓存失败。';
10. }
分享到:
相关推荐
ngx_cache_purge 是 nginx 模块,此模块可以清理 nginx 的 FastCGI、proxy、 SCGI 和 uWSGI 的缓存。配置指令(相同位置语法)fastcgi_cache_purgesyntax: fastcgi_cache_purge on|off|<method> [from all|<ip> [.....
### Nginx安装与后端健康检查模块配置详解 #### 一、Nginx环境搭建与核心组件安装 **1.1 基础环境准备** - **操作系统**: CentOS 6.5 - **基本服务器配置**: 在安装过程中选择了“基本服务器”配置。 **1.2 安装...
#pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; fastcgi_intercept_errors on; sendfile on; #设置长连接 keepalive_...
4. **缓存策略**:Nginx可以对静态资源进行缓存,通过`proxy_cache_path`设置缓存路径,`proxy_cache`启用缓存,`proxy_cache_key`定义缓存键。 5. **负载均衡**:使用`upstream`模块可以实现负载均衡,如轮询、...
高并发网站架构的核心原则其实就一句话“把所有的用户访问请求都尽量往前推“,即:能缓存在用户电脑本地的,就...Nginx内置FastCgi缓存,但是不支持自动清除缓存。当你在Wordpress里面新建/修改一篇文章,或者访客提交
Nginx支持两种主要的缓存机制:fastcgi_cache和proxy_cache,它们各有特点,适用于不同的场景。 **proxy_cache** 机制主要用于缓存后端服务器的内容,无论是静态资源还是动态生成的内容。当客户端发起请求时,Nginx...
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { location / { proxy_cache my_cache; proxy_cache_key "$scheme$request_method$host$request_uri"; } } } ``` 2...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; ``` 这里,proxy_cache定义了缓存区域,proxy_pass指向后端服务器,proxy_cache_path设置了缓存目录和参数。 6. 负载均衡...
首先,如果您使用其他缓存目录而不是/var/cache/nginx ,您可以编辑 nginx-cachelord.sh 脚本中的cache_dir变量或将其写入nginx-cache-dir.ini文本文件中: cache_dir=/var/nginx/cache 您也可以将缓存目录作为第...
Nginx中的FastCGI配置优化是一个关键的步骤,对于提升Web服务器性能和处理高并发请求至关重要。FastCGI是一种常驻型的CGI,旨在解决传统CGI接口性能低下的问题。它采用客户端/服务器架构,使得HTTP服务器与脚本解析...
第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块.pdf 第10章 Nginx在国内知名网站中的应用案例.pdf 第11章 Nginx的非典型应用实例.pdf 第12章 Nginx的核心模块.pdf 第13章 Nginx的标准HTTP模块.pdf 第14章 Nginx...
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_use_stale error timeout ...
总的来说,`proxy_cache` 和 `fastcgi_cache` 都是Nginx提高性能的利器,它们各自针对不同层面的缓存需求。在实际应用中,根据服务器的架构和资源使用情况,灵活搭配这两种缓存机制,可以有效提升网站的响应速度,...
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m inactive=60m; server { location / { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_bypass $http_pragma; proxy...
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。 Nginx 0.8.32...
第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的非典型应用实例 第12章 Nginx的核心模块 第13章 Nginx的标准HTTP模块 第14章 Nginx的其他HTTP模块 第15章...
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; server { ... location / { proxy_cache my_cache; proxy_pass http://my_upstream; } } ``` #### `proxy_...