apache、nginx的虚拟域名配置和rewrite配置,以及web缓存的几种方式
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缓存的几种方式的更多相关文章
- apache与nginx的虚拟域名配置
由于开发需求,项目有时候需要设置虚拟域名进行测试.下面是分别是apache和nginx的配置 一.apache 环境:wampserver2.5 1.修改host文件 C:\Windows\Syste ...
- nginx location配置与rewrite配置
注:原文出处 www.linuxidc.com/Linux/2015-06/119398.htm 1. location正则写法 一个示例: location =/{ # 精确匹配 / ,主机名后面不 ...
- 分布式环境配置虚拟域名,phpstudy配置虚拟域名,集成环境配置域名,域名禁止访问forbidden怎么解决
重启Apache,测试:
- struts2开发流程及配置,域对象对数据存储的3种方式
一.开发流程 1)引入 jar 包,其中必须引入的有(我是用的struts是2.3.32) commons-fileupload-1.3.2.jar |文件上传下载commons-io-2.2 ...
- windows下配置tomcat服务器的jvm内存大小的两种方式
难得遇到一次java堆内存溢出(心里想着,终于可以来一次jvm性能优化了$$) 先看下报错信息, java.lang.OutOfMemoryError: GC overhead limit excee ...
- Apache之——多虚拟主机多站点配置的两种实现方案
Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点: 将同一个端口映射成不同的域名,不同的域名映射到不同的站点. 我们只需要修 ...
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
系统版本:centos6.5版本 java版本:1.7 一.准备工作 1.java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中. 2.下载tomcat包,下载地址:h ...
- SpringMVC基础配置(通过注解配置,非xml配置)
SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...
- centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
随机推荐
- CSS效果:CSS select样式优化 含jquery代码
CSS 下拉选择菜单基本的CSS样式不怎么好看,通过一些简单的样式优化,可以得到如下图这样的: html结构如下: <div class="sel_wrap"> < ...
- jsPlumb.jsAPI阅读笔记(官方文档翻译)
jsPlumb DOCS 公司要开始做流程控制器,所以先调研下jsPlumb,下文是阅读jsPlumb提供的document所产生的归纳总结 setup 如果不使用jQuery或者类jQuery库,则 ...
- Mobile First! Wijmo 5 之 架构
CSDN移动开发频道率先报道的<Mobile First!jQuery UI组件集Wijmo五年最大更新>引起开发者极大关注. 本文就开发者关心的话题之一架构,展开叙述. Wijmo 5是 ...
- MySQL高可用方案--MHA原理
简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是日 ...
- WANem广域网环境模拟
背景 在测试过程中,往往需要模拟网络环境较差情况下,体验情况,故引入广域网模拟工具辅助测试 安装WANem 步骤1:光盘引导WANem镜像: 步骤2:启动(或者新建虚拟机——选择other insal ...
- Storm的DRPC
RPC:Remote Procedure Call DRPC:Distributed RPC Hadoop提供了RPC的实现机制,实现方法见:<>,本文主要介绍Storm的DRPC. ...
- Linux vsftd配置文件
vi /etc/vsftpd.conf listen=YES userlist_deny=NO userlist_enable=YES anonymous_enable=YES local_enabl ...
- drop all database objects
/*Use this sql to drop all objects in a database.*/ -- Drop all SPdeclare @dropSp varchar(max)=''sel ...
- 【hexo】01安装
什么是 Hexo? Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. 安装前提 安装 Hexo 相当简 ...
- Python进阶(一)
完成慕课网的python基础学习以后,大约花了三天时间,平均每天一个小时,总结了一些比较好的例题和思想方法,下面来学习python进阶吧 参考廖雪峰官方课程 函数 python官方函数调用文档 定义默 ...