当前位置:首页 » 文件管理 » fastcgi缓存

fastcgi缓存

发布时间: 2022-05-30 15:58:40

A. fastcgi中maxchildren和maxspare都是什么意思

世界知名的三维建模、动画与渲染解决方案的最新版本。该版本支持64位技术,为数字艺术家提供了下一代游戏开发、可视化设计以及电影电视视觉特效制作的强大工具。运用3ds Max软件,艺术大师们取得的重大成就已不计其数,包括纽约市的自由之塔,“Assassin’s Creed”(刺客的信条),“Gears of War”(战争机器),“Guild Wars”(行会战争)和“Mass Effect”(大规模效应)等经典游戏以及“Aeon Flux”(魔力女战士)与“哈利波特与火焰杯”等电影大片。 由于Alias和Autodesk已经合并,所以3D艺术家和动画师们今年只需要到一个地方就能了解到Max和Maya的全部重要新闻。从目前的情况看Autodesk并没有令我们失望。 3DS Max 9 新的3DS Max 9非常注重提升软件的核心表现,并且加强工作流程的效率。新版本对新的64位技术做了特别的优化,同时提升了核心动画和渲染工具的功能,能够为艺术家带来比先前版本更多的帮助。对共享资源更为紧凑的控制,对工程资源的跟踪和对工作流程的个性化设置都使得整个的创作更加的快速。 3ds Max 9生成的FBK文件格式,依然可以转换成Maya, Motionbulider以及其他Autodesk产品的格式,而mental ray 3.5也为Max 9注入了强大的渲染能力。更为简洁的用户界面使得全局照明(global illumination)和SSS shaders操作起来更加的方便。统一的间接灯光模型为在不同的radiosity模式间转换提供了保证。 利用集成的mental ray进行渲染,用户可以使用渲染所需的任意多的CPU。而集成的mental ray将如同3ds Max scanline renderer那样的精确。 Autodesk传媒娱乐部副总裁马克佩迪特(Marc Petit)对此表示:“开发Autodesk 3ds Max 9,我们旨在帮助用户应对处理更多复杂数据时、以及扩展到更大规模制作团队时所面临的挑战。使用3ds Max 9,数字艺术大师们将能感到核心性能、生产力以及制作流程效率多方面的提升,并游刃有余地管理下一代游戏、电影、广电和设计开发的日渐复杂的三维数据集特征。” Silicon Knights游戏工作室总裁Denis Dyack也兴奋地表示:“我们游戏中所有的三维建模和动画都是用Autodesk 3ds Max制作的。我们对3ds Max 9将提供的先进功能感到格外兴奋。从九十年代初开始,我们公司所有游戏的视觉方面的成功都离不开3ds Max。用它创作的作品包括热门游戏‘Metal Gear Solid:The Twin Snakes’( 潜龙谍影:双蛇)、‘Eternal Darkness:Sanity’s Requiem’(永恒的黑暗)、‘Bloody Omen:Legacy of Kain’(血魔传奇)、‘Dark Legions’( 黑暗军团) 和‘Fantasy Empires’(幻想帝国)。在我们即将出炉的下一代角色扮演动作游戏‘Too Human’(非凡战士)的制作中,3ds Max再次扮演了至关重要的角色。” Autodesk 3ds Max 9的主要功能 除了64位支持、全新的光照系统、更多着色器和加速渲染能力,3ds Max 9还提供以下功能,以最大化核心性能、生产力和制作流程效率: · 一套可添加到3ds Max中定制装备和控制器上的分层混合系统 · 线框与边缘显示的最优化,可在视图中得到更快的反馈 · 可保存并加载到步迹动画(bipeds)上的XAF文件,使定制装备输入输出信息更加轻松 · 增强的头发和衣服功能,包括在视图中设计发型的能力 ·增强的对正在处理中资产的文件参照及跟踪功能 ·点缓存(Point cache)2能将网格变形制作成文件进行快速渲染 ·通过FBX文件格式改善与Autodesk Maya的兼容性 有关全新3ds Max 9功能的完整列表,请访问 /3dsmax 得益于HP和Intel的支持,欧特克开发商网络(ADN) 星火计划中的不少第三方开发商已经生产了其原有插件的64位版本以支持3ds Max 9,以便让用户立即获得64位开发工具库。

B. NGINX proxy 模块如何如何缓存动态页面内容如何让缓存过期

这里用虚拟机配置了下:

nginx 配置文件内容:

主要是这一句:

proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;

这一句定义一个区域,名字是 Z ,在内存中的空间为10MB ,硬盘中的最大空间为 30G;

inactive=1m 是,1分钟之后缓存失效 ,从新从源服务器请求

这里纠正一下,inactive=1m 如果缓存1分钟没人访问,nginx 会删除掉这些缓存

/usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;
proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;
server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /www/;
#expires max;

#proxy_store on;
#proxy_store_access user:rw group:rw all:rw;
#proxy_temp_path /www/;
proxy_cache Z;
proxy_cache_valid 200 1m;
#expires max;
include proxy.conf;

if ( !-e $request_filename) {
proxy_pass http://192.168.1.199:45815;
}
}
#这里设置当 访问 /ajax/目录下的内容时候,直接从源服务器读取,主要用于ajax 的访问请求,要求实时的
location /ajax/ {

include proxy.conf;
if ( !-e $request_filename) {
proxy_pass http://192.168.1.199:45815;
}
}

#location ~.*\.(jpg|png|jpeg|gif)
#{
# expires max;
#}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the php scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}

# HTTPS server
#
#server {
# listen 443;
# server_name localhost;

# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

/usr/local/nginx/conf/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding 'gzip';
client_max_body_size 100m;
client_body_buffer_size 256k;

proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffer_size 512k;
proxy_buffers 8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;

一开始我就这样配置,认为可以成功了,结果发现动态文件无法被缓存,而html 文件可以被缓存,后来就到很多地方去问,

心想会不会是因为 文件 的 头信息或者Last-Modified
信息和 ETag 造成的,就去问,http://www.dewen.org/q/9769/nginx+%E5%A6%82%E4%BD%95%E7%BC%93%E5%AD%98%E5%8A%A8%E6%80%81%E9%A1%B5%E9%9D%A2%EF%BC%9F

发现果真如此,马上修改源服务器的动态文件,加入以下代码:

<%@ Page Language="C#" %>
<%

string date = Request.Headers.Get("If-Modified-Since");
if (date != null)
{
Response.StatusCode = 304;
Response.StatusDescription = "from cache";
return;
}

DateTime expDate = new DateTime(2037, 12, 31, 23, 55, 55);
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(expDate);
Response.Cache.SetMaxAge(expDate - DateTime.Now);
Response.Cache.SetLastModified(new DateTime(2000, 1, 1));

%>

<%=DateTime.Now.ToString()%>

然后发现就可以缓存动态文件了。至此,下一步我就可以用nginx 作为用户访问的 服务器了

这里截一些图:

C. 请教nginx中fastcgi缓存过期时间,以及如何清理缓存的问题

nginx的缓存服务proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,要清除指定URL可以用nginx第三方模块ngx_cache_purge。
nginx安装时需要将ngx_cache_purege加载进去。

D. nginx 配置详解是怎么样的

Nginx配置文件主要分为四部分:main(全局配置)、server(主机设置)、upstream(上游服务器设置)和location(URL匹配特定位置后的设置)每部分包含若干个指令。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。

并且支持很多第三方的模块扩展,Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

nginx 配置注意事项

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

E. 502 Bad Gateway

可以尝试清除浏览器缓存 访问一下你的FTP看是否可以登陆 产生原因 服务器(不一定是Web服务器)是作为网关或代理,以满足客户的要求(如Web浏览器或我们的CheckUpDown机器人)来访问所请求的URL 。此服务器收到无效响应从上游服务器访问履行它的要求。 固定502错误 一般这个问题是由于不良的IP之间的沟通后端计算机,包括您可能尝试访问的在Web服务器上的网站。在分析这个问题,您应该清除浏览器缓存完全。 如果您上网时在您尝试访问的所有网站上都看这个问题,有两种可能 1 )你的ISP了重大设备故障/过载或 2 )有问题的内部互联网连接如您的防火墙无法正常运作。 在第一种情况下,只有您的ISP可以帮助您。在第二种情况下,你需要解决什么,那就是阻止你进入互联网。 如果您只有在部分尝试访问的网站中出现此问题,那就很可能是一个问题,即这些网站之一,其设备故障或超载。联系网站的管理员。

==========
一些运行在Nginx上的网站有时候会出现“502 Bad Gateway”错误,有些时候甚至频繁的出现。以下是从Google搜集整理的一些Nginx 502错误的排查方法,供参考:

Nginx 502错误的原因比较多,是因为在代理模式下后端服务器出现问题引起的。这些错误一般都不是nginx本身的问题,一定要从后端找原因!但nginx把这些出错都揽在自己身上了,着实让nginx的推广者备受置疑,毕竟从字眼上理解,bad gateway?不就是bad nginx吗?让不了解的人看到,会直接把责任推在nginx身上,希望nginx下一个版本会把出错提示写稍微友好一些,至少不会是现在简单的一句 502 Bad Gateway,另外还不忘附上自己的大名。

Nginx 502的触发条件

502错误最通常的出现情况就是后端主机当机。在upstream配置里有这么一项配置:proxy_next_upstream,这个配置指定了 nginx在从一个后端主机取数据遇到何种错误时会转到下一个后端主机,里头写上的就是会出现502的所有情况拉,默认是error timeout。error就是当机、断线之类的,timeout就是读取堵塞超时,比较容易理解。我一般是全写上的:

proxy_next_upstream error timeout invalid_header http_500 http_503;不过现在可能我要去掉http_500这一项了,http_500指定后端返回500错误时会转一个主机,后端的jsp出错的话,本来会打印一堆 stacktrace的错误信息,现在被502取代了。但公司的程序员可不这么认为,他们认定是nginx出现了错误,我实在没空跟他们解释502的原理 了……

503错误就可以保留,因为后端通常是apache resin,如果apache死机就是error,但resin死机,仅仅是503,所以还是有必要保留的。

解决办法

遇到502问题,可以优先考虑按照以下两个步骤去解决。

1、查看当前的PHP FastCGI进程数是否够用:

netstat -anpo | grep "php-cgi" | wc -l如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。

2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:

......
http
{
......
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
......
}
......php.ini中memory_limit设低了会出错,修改了php.ini的memory_limit为64M,重启nginx,发现好了,原来是PHP的内存不足了。

如果这样修改了还解决不了问题,可以参考下面这些方案:

一、max-children和max-requests

一台服务器上运行着nginx php(fpm) xcache,访问量日均 300W pv左右

最近经常会出现这样的情况: php页面打开很慢,cpu使用率突然降至很低,系统负载突然升至很高,查看网卡的流量,也会发现突然降到了很低。这种情况只持续数秒钟就恢复了

检查php-fpm的日志文件发现了一些线索

Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200
Sep 30 08:32:23.290212 [NOTICE] fpm_sockets_init_main(), line 371: using inherited socket fd=10, “127.0.0.1:9000″
Sep 30 08:32:23.290342 [NOTICE] fpm_event_init_main(), line 109: libevent: using epoll
Sep 30 08:32:23.296426 [NOTICE] fpm_init(), line 47: fpm is running, pid 30587在这几句的前面,是1000多行的关闭children和开启children的日志

原来,php-fpm有一个参数 max_requests,该参数指明了,每个children最多处理多少个请求后便会被关闭,默认的设置是500。因为php是把请求轮询给每个 children,在大流量下,每个childre到达max_requests所用的时间都差不多,这样就造成所有的children基本上在同一时间 被关闭。

在这期间,nginx无法将php文件转交给php-fpm处理,所以cpu会降至很低(不用处理php,更不用执行sql),而负载会升至很高(关闭和开启children、nginx等待php-fpm),网卡流量也降至很低(nginx无法生成数据传输给客户端)

解决问题很简单,增加children的数量,并且将 max_requests 设置未 0 或者一个比较大的值:

打开 /usr/local/php/etc/php-fpm.conf

调大以下两个参数(根据服务器实际情况,过大也不行)

<value name=”max_children”>5120</value>
<value name=”max_requests”>600</value>然后重启php-fpm。

二、增加缓冲区容量大小

将nginx的error log打开,发现“pstream sent too big header while reading response header from upstream”这样的错误提示。查阅了一下资料,大意是nginx缓冲区有一个bug造成的,我们网站的页面消耗占用缓冲区可能过大。参考老外写的修 改办法增加了缓冲区容量大小设置,502问题彻底解决。后来系统管理员又对参数做了调整只保留了2个设置参数:client head buffer,fastcgi buffer size。

三、request_terminate_timeout

如果主要是在一些post或者数据库操作的时候出现502这种情况,而不是在静态页面操作中常见,那么可以查看一下php-fpm.conf设置中的一项:

request_terminate_timeout

这个值是max_execution_time,就是fast-cgi的执行脚本时间。

0s

0s为关闭,就是无限执行下去。(当时装的时候没仔细看就改了一个数字)

发现,问题解决了,执行很长时间也不会出错了。

优化fastcgi中,还可以改改这个值5s 看看效果。

php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。

原文:http://www.ha97.com/4004.html

---★ 本文转摘自‘IT学习者’→ http://www.itlearner.com/article/4814

F. 如何调整nginx服务器的性能

linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两、三万,这样服务器很容易被拖死。事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器的TIME_WAIT套接字数量,进而提高Nginx服务器并发性能。

vi /etc/sysctl.conf

增加以下几行:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000简单说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改 为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参 数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

echo “====================== 执行以下命令使配置生效:=========================”
#更改linux内核参数后,立即生效的命令!

/sbin/sysctl -p

Nginx优化

使用FastCGI 缓存
fastcgi_cache TEST
开启FastCGI 缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。

fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间

其它说明

Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结 果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。

根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还 得为系统预留1GB的内存。我曾经就有两台Apache服务器,因为在配置文件中设置的MaxClients为4000,当Apache并发连接数达到 3800时,导致服务器内存和Swap空间用满而崩溃。

而这台 Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php-cgi进程消耗1280M内存 (20M*64=1280M),加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25个php-cgi进程,这样 php-cgi消耗的总内存数才500M。

G. 上网有时常常出现这个504 Gateway Time-out这是什么意思啊

504 Gateway Time-out就字面意思,我们可以理解为网页请求超时,也就是浏览网站网页所发出的请求没有反应或者未响应,在网站程序层面来说,就是请求未能够执行相应的PHP-CGI程序,或者PHP-CGI程序未能做出相应的处理,又或者是CGI程序的响应处理结果未能够反馈到浏览器或者未能及时反馈到浏览器。

是由于nginx默认的fastcgi进程响应缓冲区太小造成: 这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

4、这样就能正常上网了。

H. 如何解决百度云加速缓存

一、动静均缓存

网络云加速更新后取消了简单的勾选配置,其实对于我们来说真的说是福利了,作为首批先锋测试团成员,下面我就简单给大家设置一下!很多朋友解析到网络云加速后就放一边了,结果速度依然蜗牛,没有感受到飞的快感,那么今天我就要带大家一起挖掘一下网络云加速真正隐藏属性。

其实,新版网络云加速需要自己自定义规则来开启缓存!下面简单分享下动态网站在网络云加速下开启高速缓存的自定义规则,如图点击可进入设置

同样的,根据前面的黑白名单规则,我们先定个调,一般网站应该是这样的情况:前台都缓存、后台不缓存、个别页面要缓存或不缓存。

先看下网络云加速自定义规则的说明:

提示说明:
规则自定义指对“指定URL”进行页面级规则定制(支持通配符*)。可对任意子域名、目录、甚至单个URL进行针对性的加速缓存、安全防护等配置。列表中上下关系决定优先级,靠上规则优先级高。站长可以通过点击“↑”调整优先级。新增规则优先级最低,将于30s内生效。

URL指定支持通配符*,例如

1) 对img.xiangta.cc进行特定设置,需增加URL: img.xiangta.cc/*

2) 对xiangta.cc/news/ 进行特定设置,需增加URL: xiangta.cc/news/*

3) 对xiangta.cc所有html页面进行特定设置,需增加URL: xiangta.cc/*.html

支持通配,这就简单了!不过免费版只支持3条规则,这个就需要你们合理斟酌一下了,不要看我可以设置10条,我是网络云加速测试者,永久享用10条顶级以及很多功能。

优先级从上往下依次降低,所以我们要保证不缓存的规则写到最上面,才能不会缓存规则覆盖。

根据我个人经验,一般网站设置如下3条规则即可:

①、网站后台:xiangta.cc/admin/* 设置为不缓存或细致缓存

②、前端分页:xiangta.cc/?page=* 设置为不缓存或细致缓存

③、网站前台:*xiangta.cc* 设置为前后通配都缓存,缓存一般为1天或者12小时,20小时,根据自己更新速度设置缓存

Ps:细致缓存其实就是只缓存静态文件,其中缓存时间或有效期请自行设定即可,无需按图照办。另外由于新版网络云加速现在不能对单个域名设置了,所以最后的缓存规则是前后通配,保证某些网站的二级静态域名也缓存到位。另外,这只是我个人经验推荐的配置,比如评论分页就可以根据自己的需要设置为其他页面,此处分享仅供参考!

这样设置好了之后,网站前台刷几下就可以看到效果了,当然还可以F12到network里面去看header的缓存命中情况,这就不赘述了。注意本人网站是动态网站。

二、只缓存静态

动静都缓存可以解决国内低配VPS的2个尴尬:带宽和负载。带宽问题,国内普遍小水管就不用我多说了吧。负载问题则是动态网站一直以来的诟病,刷新快一点,CPU就满了。

但是,有一些网站,本地已有缓存或者访问流量并不高,他们不想开启全站缓存,因为会带来的各种数据不刷新问题。因此,我们如何既解决速度问题,又兼顾实时数据呢?

当然,开启CDN不进行整站缓存设置的话,大部分CDN会默认缓存静态文件,基本满足以上需求。但是某些CDN有个坑爹的规则:他会和谐某些关键词,访问有这些关键词的页面就提示违规并不显示。

如何解决这个问题?很简单,通过域名做动静分离即可。

将静态链接替换为二级域名,并开启CDN缓存。主域名则不走CDN或走CDN但不开启缓存。

将静态链接替换为二级域名应该不用我多说了吧?

可当然我个人网站的文件都是分离的。

主域名不走CDN也很简单,直接在解析时不开启缓存即可,也就是直接回源:

如果担心暴露IP,如果是阿里云ECS,你还可以CNAME到阿里云的WAF上:

走CDN开启缓存和走CDN禁止缓存应该也不用我多说了,上文都有分享规则。

如上设置后,你的网站的速度也会很快,当然前提是你的动态部分不卡才行。如果网站还是比较卡,但是你有不想开启纯静态导致数据不刷新,那么

①、如果是独立主机,可以考虑开启redis或opcache等php动态缓存

②、如果是虚拟主机,可以安装 DB Cache Reloaded Fix这类数据缓存插件

当然,如果你觉得还是不够快,那么心系与她一样,开启Nginx的fastcgi缓存!

在这里我推荐一下文件分流存储服务商,又拍云价格便宜而且效果很明显,节点我就不多说了,自己ping一下就知道了,配合着网络云加速,分分钟让你网站秒杀市面上20M带宽的VPS。

三、总结下区别

方案一 和 方案二 到底有什么区别呢?

方案一:是将动态和静态都强制缓存到CDN,这样就算本地不开启任何缓存,用户的访问速度也是杠杠的。如果想要给搜索引擎蜘蛛一样的速度,那么本地最好也开启一下静态缓存。

方案二:则是只缓存静态数据,动态数据依然请求到源服务器。这样做的好处是既解决了带宽尴尬,又解决了前台数据不能实时刷新的问题。因为占带宽的主要是静态文件,而非html代码。我们将大体积的静态文件托管到CDN加速,源服务器就只要负担体积很小的html代码流量了,速度自然就快了,如果觉得还是不够快那你就选择配合使用分布储存

I. Linux下有这样一个文件夹/usr/local/nginx/fastcgi_temp是干嘛用的求助

是nginx中fastcgi的一个缓存文件!

J. php怎么读取设置nginx缓存

nginx缓存
nginx有两种缓存机制:fastcgi_cache和proxy_cache
下面我们来说说这两种缓存机制的区别吧
proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的
fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽
fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力。

proxy_cache缓存设置
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path/data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path/data0/proxy_cache_dirlevels=1:2keys_zone=cache_one:200minactive=1dmax_size=30g;

server
{
listen80;
server_namewww.yourdomain.com192.168.8.42;
indexindex.htmlindex.htm;
root/data0/htdocs/www;

location/
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;
proxy_cachecache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid20030412h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key$host$uri$is_args$args;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_passhttp://backend_server;
expires1d;
}

#用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/purge/test.txt就可以清除该URL的缓存。
location~/purge(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
allow127.0.0.1;
allow192.168.0.0/16;
denyall;
proxy_cache_purgecache_one$host$1$is_args$args;
}

#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
location~.*.(php|jsp|cgi)?$
{
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_passhttp://backend_server;
}

access_logoff;
}
}

fastcgi_cache缓存设置
#定义缓存存放的文件夹
fastcgi_cache_path/tt/cachelevels=1:2keys_zone=NAME:2880minactive=2dmax_size=10G;
#定义缓存不同的url请求
fastcgi_cache_key"$scheme$request_method$host$uri$arg_filename$arg_x$arg_y";

server{
listen8080;
server_namewww.example.com;
location/{
root/www;
indexindex.htmlindex.htmindex.php;
}

location~(|.php)${
root/www;
fastcgi_pass127.0.0.1:9000;

fastcgi_cacheNAME;
fastcgi_cache_valid20048h;
fastcgi_cache_min_uses1;
fastcgi_cache_use_staleerrortimeoutinvalid_headerhttp_500;

fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
includefastcgi.conf;
#设置缓存的过程中发现无法获取cookie,经查需要定义这句话
fastcgi_pass_headerSet-Cookie;
}

log_formataccess'$remote_addr-$remote_user[$time_local]"$request"'
'$status$body_bytes_sent"$http_referer"'
'"$http_user_agent"$http_x_forwarded_for';
access_log/httplogs/access.logaccess;
}
总的来说nginx的proxy_cache和fastcgi_cache的缓存配置差不多。
memcache缓存
在讨论memcache缓存之前,我们先了解下mysql的内存缓存吧
mysql的内存缓存可以在my.cnf中指定大小:内存表和临时表不同,临时表也是存放内存中,临时表最大的内存需要通过tmp_table_size=128M设定。当数据查过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降,而内存表不会,内存满了后,会提示数据满错误。
例:
createtabletest
(
idintunsignednotnullauto_incrementprimarykey
statechar(10),
typechar(20),
datechar(30)
)engine=memorydefaultcharset=utf8
内存表的特性:
1.内存表的表定义存放在磁盘上,扩展名为.frm,所以重启不会丢失
2.内存表的数据是存放在内存中,重启会丢失数据
3.内存表使用一个固定的长度格式
4.内存表不支持blob或text列,比如varchar与text字段就不会被支持
5.内存表支持auto_increment列和对可包含null值的列的索引
6.内存表不支持事物
7.内存表是表锁,当修改频繁时,性能可能会下降
转自:

http://www.nowamagic.net/librarys/veda/detail/1405

下面我们来看看memcache,相对而言mysql的内存表限制较多。
memcache的用途
1.提高系统的并发能力
2.减轻数据库的负担
注:memcachelinux系统32位只支持4G内存,同时memcache最长保存时间为30天。

热点内容
黑漫的服务器ip 发布:2025-01-23 03:16:40 浏览:650
tplink无internet访问 发布:2025-01-23 03:15:18 浏览:566
原神用安卓手机玩为什么画质那么低 发布:2025-01-23 03:09:31 浏览:847
空调压缩机是外机吗 发布:2025-01-23 03:09:31 浏览:950
大学数据库学 发布:2025-01-23 02:54:30 浏览:588
部队营区监控系统录像存储多少天 发布:2025-01-23 02:49:26 浏览:523
oraclelinux用户名和密码 发布:2025-01-23 02:43:06 浏览:404
安卓手机主页滑动屏幕怎么设置 发布:2025-01-23 02:41:15 浏览:225
小脸解压 发布:2025-01-23 02:24:17 浏览:368
网易电脑版我的世界布吉岛服务器 发布:2025-01-23 02:20:17 浏览:985