web缓存一般用来缓解数据库压力。

  通常有几种方法,文件静态化,缓存服务memcached、redis等。

  伪静态,一般指在url上貌似访问静态html页的形式,这样有利于搜索引擎访问到网站页面,实际是在web服务器的入口进行了解析(比如pathinfo这种访问方式,可以利用apache或者nginx进行rewrite配置,或者脚本里进行正则解析),这仍然是动态页面。

  这里插播一下,apache和nginx配置虚拟域名。这篇文章写的不错https://www.zybuluo.com/phper/note/73726

  apache配置虚拟域名:在httpd.conf打开虚拟域名服务模块。找到虚拟域名的这个配置文件,在里面加域名。

  配置规则如下图:

  

  DocumentRoot就是网站访问的文件根目录。ServerName 就是访问的域名。RewriteEngine是否开启rewrite引擎。就是apache的rewrite配置。

  nginx的虚拟域名配置:方法不知一个,一种方法是,在nginx.conf文件里include一个目录(比如conf.d)下的文件。

  

  然后在conf.d的目录里,写入各个虚拟域名的配置文件。比如abc.baidu.com.conf、xyz.baidu.com.conf等。

  在一个虚拟域名配置文件里:

  

  

  nginx的rewirte配置:

知识点插播over-------

文件静态化,比如门户网站的新闻,这些东西一般一段时间内不会发生变化,并且访问的人很多。如果每次都是从db里取,那么数据库资源还是很紧张的。这是可以考虑静态化,即生成静态文件,下次有用户访问的时候,直接取这个静态文件而不是去db里读。

php有个很方便的生成文件函数,file_put_contents();

比如一堆新闻列表数据$str,从数据库里读出来,然后include一个view页面。此时,需要把这个页面静态化起来,放到某个比如/data/www/site/news/111.html文件里。

开启一个缓冲区,把这个页面的内容放到缓冲区(比如include这个view),然后放到静态化文件里。

可以这样file_put_contents('/data/www/site/news/111.html', ob_get_contents());

这里再插播一个php缓冲区的知识点:

 ob_start();// 开启一个缓冲区

 echo 'str1';
echo 'str2'; $str = ob_get_contents();// 获取缓冲区内容 ob_clean();// 清空缓冲区 //$str = ob_get_clean();// 获取并清空 echo $str;// str1str2

第一行开启一个缓冲区,那么3、4行echo出的字符串就进入到了这个缓冲区。

然后把缓冲区的内容赋给了一个变量,再清空缓冲区。那么3、4行的代码就不会输出在浏览器(因为缓冲区被清除了)。而会输出那个被赋值的变量。

生成静态化文件以后,当然需要应对变化,比如新闻列表要改动了。这样需要重新读db,然后再覆盖静态文件。

有几种方式,可以设置定时任务,在一段时间后定时重新生成;做一个直接立刻删除缓存的触发;还可以判断time,filemtime,filectime的差看是否失效(失效时间可根据业务定)。等等方式

局部静态化,意思就是动态程序里,有一部分数据利用了页面静态化(即没读取db数据)。

局部动态化,就是在静态化文件里,也有一部分访问了服务器,比如ajax技术。

apache、nginx的虚拟域名配置和rewrite配置,以及web缓存的几种方式的更多相关文章

  1. apache与nginx的虚拟域名配置

    由于开发需求,项目有时候需要设置虚拟域名进行测试.下面是分别是apache和nginx的配置 一.apache 环境:wampserver2.5 1.修改host文件 C:\Windows\Syste ...

  2. nginx location配置与rewrite配置

    注:原文出处 www.linuxidc.com/Linux/2015-06/119398.htm 1. location正则写法 一个示例: location =/{ # 精确匹配 / ,主机名后面不 ...

  3. 分布式环境配置虚拟域名,phpstudy配置虚拟域名,集成环境配置域名,域名禁止访问forbidden怎么解决

    重启Apache,测试:  

  4. struts2开发流程及配置,域对象对数据存储的3种方式

    一.开发流程 1)引入 jar 包,其中必须引入的有(我是用的struts是2.3.32) commons-fileupload-1.3.2.jar     |文件上传下载commons-io-2.2 ...

  5. windows下配置tomcat服务器的jvm内存大小的两种方式

    难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit excee ...

  6. Apache之——多虚拟主机多站点配置的两种实现方案

    Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点: 将同一个端口映射成不同的域名,不同的域名映射到不同的站点. 我们只需要修 ...

  7. 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )

    系统版本:centos6.5版本 java版本:1.7 一.准备工作 1.java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中. 2.下载tomcat包,下载地址:h ...

  8. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  9. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

随机推荐

  1. Csharp: read Sybase SQL anywhere5.5 using c#

    private void button1_Click(object sender, EventArgs e) { try { //OdbcConnection conn = new OdbcConne ...

  2. mysql之Navicat工具、pymysql模块

    1. IDE工具介绍(Navicat) 为了方便测试,使用IDE工具,就是Navicat,这个工具本质上就是一个socket客户端,可视化的连接mysql服务端的一个工具,并且是图形界面版的.它和直接 ...

  3. 【代码笔记】Web-ionic-按钮

    一,效果图. 二,代码.index.html文件如下所示. <!DOCTYPE html> <html> <head> <meta charset=" ...

  4. easyUI combobox combotree 模糊查询,带上下键选择功能,待完善。。。。

    /2017年4月9日 11:52:36 /** * combobox和combotree模糊查询 * combotree 结果带两级父节点(手动设置数量) * 键盘上下键选择叶子节点 * 键盘回车键设 ...

  5. python自动化开发-6

    python的常用模块(续) shutil模块:主要是做文件复制的.文件,文件夹,压缩包等的处理模块. 常用的方法: shutil.copyfileobj:将文件的内容拷贝到另一个文件中. 例子: # ...

  6. 超级干货 :一文读懂数据可视化 ZT

    前言 数据可视化,是指将相对晦涩的的数据通过可视的.交互的方式进行展示,从而形象.直观地表达数据蕴含的信息和规律. 早期的数据可视化作为咨询机构.金融企业的专业工具,其应用领域较为单一,应用形态较为保 ...

  7. Python 基于python实现单例模式

    基于python实现单例模式 by:授客 QQ:1033553122   概念 简单说,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也 ...

  8. loadrunner 技巧-模拟Run Logic中的随机Action运行

    技巧-模拟Run Logic中的随机Action运行 by:授客 QQ:1033553122   可以这样做,Run-time Settings,删除Action7,然后在其它Action比如Acti ...

  9. .Net Core(三)MVC Core

    MVC Core的改动感觉挺大的,需要的功能大多从Nuget安装,还内置了IOC,支持SelfHost方式运行等等. 一.项目结构的变化创建的新MVC项目的结构发生了变化,比如:静态文件需要统一放置到 ...

  10. linux系统运行状态检查

    目录 1 CPU状态检查 1.1 运行时间 1.2 CPU占用率 1.3 单核占用率 2 内存状态检查 2.1 内存占用率 2.2 交换分区占用率 3 磁盘状态检查 3.1 系统磁盘容量占用率 3.2 ...