好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

nginxphp存数据 nginx到php的执行流程

很多站长朋友们都不太清楚nginxphp存数据,今天小编就来给大家整理nginxphp存数据,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php如何更新nginx静态缓存 2、 502 Bad Gateway 3、 php怎么读取设置nginx缓存 4、 深入Nginx + PHP 缓存详解 php如何更新nginx静态缓存

这里说下Memcached的例子:

复制代码 代码如下:

<?php

$memcache = new Memcache;

$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();

echo "Server's version: ".$version."\n";

$tmp_object = new stdClass;

$tmp_object->str_attr = 'test';

$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");

echo "Store data in the cache (data will expire in 10 seconds)\n";

$get_result = $memcache->get('key');

echo "Data from the cache:\n";

var_dump($get_result);

读库的例子:

复制代码 代码如下:

<?php

$sql = 'SELECT * FROM users';

$key = md5($sql); //memcached 对象标识符

if ( !($datas = $mc->get($key)) ) {

// 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。

echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";

$conn = mysql_connect('localhost', 'test', 'test');

mysql_select_db('test');

$result = mysql_query($sql);

while ($row = mysql_fetch_object($result))

$datas[] = $row;

// 将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。

$mc->add($key, $datas);

} else {

echo "n".str_pad('Read datas from memcached.', 60, '_')."n";

}

var_dump($datas);

502 Bad Gateway

502badgateway要先找到nginx配置的路径。

然后找到nginx所在的error日志文件来查看具体原因。

如果是客户端浏览器配置的问题,以360浏览器为例,出现502BadGateway可能是设置了代代理导致的。

取消浏览器代理之后,刷新一下就可以访问了。

502BadGateway是一种报错提示,这一错误并不意味着上游服务器已关闭(无响应网关/代理),而是上游服务器和网关/代理不同意的协议交换数据。

鉴于互联网协议是相当清楚的,它往往意味着一个或两个机器已不正确或不完全编程。

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_dir??levels=1:2???keys_zone=cache_one:200m?inactive=1d?max_size=30g;

?

server

??{

????listen???????80;

????server_name???192.168.8.42;

????index?index.html?index.htm;

????root??/data0/htdocs/www;??

????location?/

????{

?????????#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。

?????????proxy_next_upstream?http_502?http_504?error?timeout?invalid_header;

?????????proxy_cache?cache_one;

?????????#对不同的HTTP状态码设置不同的缓存时间

?????????proxy_cache_valid??200?304?12h;

?????????#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

?????????proxy_cache_key?$host$uri$is_args$args;

?????????proxy_set_header?Host??$host;

?????????proxy_set_header?X-Forwarded-For??$remote_addr;

?????????proxy_pass?;

?????????expires??????1d;

????}

????

????#用于清除缓存,假设一个URL为,通过访问就可以清除该URL的缓存。

????location?~?/purge(/.*)

????{

?????#设置只允许指定的IP或IP段才可以清除URL缓存。

?????allow????????????127.0.0.1;

?????allow????????????192.168.0.0/16;

?????deny????????????all;

?????proxy_cache_purge????cache_one???$host$1$is_args$args;

????}????

????#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。

????location?~?.*\.(php|jsp|cgi)?$

????{

?????????proxy_set_header?Host??$host;

?????????proxy_set_header?X-Forwarded-For??$remote_addr;

?????????proxy_pass?;

????}

????access_log??off;

??}

}

?

fastcgi_cache缓存设置

#定义缓存存放的文件夹

fastcgi_cache_path???/tt/cache??levels=1:2?keys_zone=NAME:2880m?inactive=2d?max_size=10G;

#定义缓存不同的url请求

fastcgi_cache_key?"$scheme$request_method$host$uri$arg_filename$arg_x$arg_y";

?

server?{

????????listen???????8080;

????????server_name???测试数据;

????????location?/?{

????????????root???/www;

????????????index??index.html?index.htm?index.php;

????????}

?

????????location?~?(|.php)$?{

????????????root???????????/www;

????????????fastcgi_pass???127.0.0.1:9000;

????????????

????????????fastcgi_cache???NAME;

????????????fastcgi_cache_valid?200?48h;

????????????fastcgi_cache_min_uses??1;

????????????fastcgi_cache_use_stale?error??timeout?invalid_header?http_500;

????????????

????????????fastcgi_index??index.php;

????????????fastcgi_param??SCRIPT_FILENAME??/scripts$fastcgi_script_name;

????????????include????????fastcgi.conf;

????????????#设置缓存的过程中发现无法获取cookie,经查需要定义这句话

????????????fastcgi_pass_header?Set-Cookie;

????????}

?

????????log_format??access??'$remote_addr?-?$remote_user?[$time_local]?"$request"?'

??????????????'$status?$body_bytes_sent?"$http_referer"?'

??????????????'"$http_user_agent"?$http_x_forwarded_for';

access_log??/httplogs/access.log??access;

}

总的来说??nginx的proxy_cache和fastcgi_cache的缓存配置差不多。

memcache缓存

在讨论memcache缓存之前,我们先了解下mysql的内存缓存吧

mysql的内存缓存可以在my.cnf中指定大小:内存表和临时表不同,临时表也是存放内存中,临时表最大的内存需要通过tmp_table_size=128M设定。当数据查过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降,而内存表不会,内存满了后,会提示数据满错误。

例:

create?table?test

(

????id?int?unsigned?not?null?auto_increment?primary?key

????state?char(10),

????type?char(20),

????date?char(30)

)engine=memory?default?charset=utf8

内存表的特性:

1.内存表的表定义存放在磁盘上,扩展名为.frm,所以重启不会丢失

2.内存表的数据是存放在内存中,重启会丢失数据

3.内存表使用一个固定的长度格式

4.内存表不支持blob或text列,比如varchar与text字段就不会被支持

5.内存表支持auto_increment列和对可包含null值的列的索引

6.内存表不支持事物

7.内存表是表锁,当修改频繁时,性能可能会下降

转自:

?

下面我们来看看memcache,相对而言mysql的内存表限制较多。

memcache的用途

1.提高系统的并发能力

2.减轻数据库的负担

注:memcache?linux系统32位只支持4G内存,同时memcache最长保存时间为30天。

深入Nginx + PHP 缓存详解

以下是对Nginx中的PHP缓存进行了详细的分析介绍 需要的朋友可以参考下 ?

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 /data /proxy_temp_dir; #设置Web缓存区名称为cache_one 内存缓存空间大小为 MB 天没有被访问的内容自动清除 硬盘缓存空间大小为 GB proxy_cache_path /data /proxy_cache_dir levels= : keys_zone=cache_one: m inactive= d max_size= g; server { listen ; server_name yourdomain ; index index index ; root /data /htdocs/; location / { #如果后端的服务器返回 执行超时等错误 自动将请求转发到upstream负载均衡池中的另一台服务器 实现故障转移 proxy_next_upstream _ _ error timeout invalid_header; proxy_cache cache_one; #对不同的HTTP状态码设置不同的缓存时间 proxy_cache_valid h; #以域名 URI 参数组合成Web缓存的Key值 Nginx根据Key值哈希 存储缓存内容到二级缓存目录内 proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X Forwarded For $remote_addr; proxy_pass //backend_server; expires d; } #用于清除缓存 假设一个URL为 通过访问就可以清除该URL的缓存 location ~ /purge(/ *) { #设置只允许指定的IP或IP段才可以清除URL缓存 allow ; allow / ; deny all; proxy_cache_purge cache_one $host$ $is_args$args; } #扩展名以 php jsp cgi结尾的动态应用程序不缓存 location ~ * (php|jsp|cgi)?$ { proxy_set_header Host $host; proxy_set_header X Forwarded For $remote_addr; proxy_pass //backend_server; } access_log off; } }

fastcgi_cache缓存设置

复制代码 代码如下: #定义缓存存放的文件夹 fastcgi_cache_path /tt/cache levels= : keys_zone=NAME: m inactive= d max_size= G; #定义缓存不同的url请求 fastcgi_cache_key "$scheme$request_method$host$uri$arg_filename$arg_x$arg_y"; server { listen ; server_name example ; location / { root /; index index index index php; } location ~ (| php)$ { root /; fastcgi_pass : ; fastcgi_cache NAME; fastcgi_cache_valid h; fastcgi_cache_min_uses ; fastcgi_cache_use_stale error timeout invalid_header _ ; fastcgi_index index php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi conf; #设置缓存的过程中发现无法获取cookie 经查需要定义这句话 fastcgi_pass_header Set Cookie; } log_format access $remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$_referer" "$_user_agent" $_x_forwarded_for ; access_log / }

总的来说 nginx的proxy_cache和fastcgi_cache的缓存配置差不多 memcache缓存 在讨论memcache缓存之前 我们先了解下mysql的内存缓存吧 mysql的内存缓存可以在my cnf中指定大小 内存表和临时表不同 临时表也是存放内存中 临时表最大的内存需要通过tmp_table_size= M设定 当数据查过临时表的最大值设定时 自动转为磁盘表 此时因需要进行IO操作 性能会大大下降 而内存表不会 内存满了后 会提示数据满错误 例

复制代码 代码如下: create table test ( id int unsigned not null auto_increment primary key state char( ) type char( ) date char( ) )engine=memory default charset=utf lishixinzhi/Article/program/PHP/201311/21248

关于nginxphp存数据的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于nginxphp存数据 nginx到php的执行流程的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did197778
更新时间:2023-04-26   阅读:25次

上一篇: phpmddir的简单介绍

下一篇:mysql生成php文件 php创建mysql数据库表

相关资讯

最新资料更新

  • 1.php编程圆面积 编程实现圆的面积
  • 2.php下载文件完整官方版 php在哪下载
  • 3.php与java同步接口 php和java做服务端对比
  • 4.php薪资1680 php一个月能挣多少钱
  • 5.修改php网页链接 怎么修改php网页
  • 6.包含Zend转php的词条
  • 7.phpfpm出错 php报错信息
  • 8.php引用vendor php 引用
  • 9.php登录注册论文 php写注册登录
  • 10.php在线直播详解 php直播用的什么技术
  • 11.phpmysql框架 php框架yii
  • 12.form居中显示php form居中显示
  • 13.php怎么开发xml php处理xml数据
  • 14.php本地myaql工具 phpmysqlnd
  • 15.php队列和缓存 php中的九大缓存技术
  • 16.phpurl链接解析 php解析url
  • 17.php上传图片木马 php图片上传代码
  • 18.图片二进制php 图片二进制转换器
  • 19.vscode开发php vscode开发JAVA方便吗
  • 20.zblogphp分类 zblog asp

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]