Apache与Nginx动静分离
概述
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项
针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。
在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式
实现动静分离的方式有三种:
- 静态web服务放置在公网中
- 静态web服务放置在代理服务器中
- 静态web服务放置在内网的单独服务器上
常用的方案:在公网和 内网都提供静态页面处理的服务器
Nginx的正则匹配
常用的正则匹配规则
^~ : 标识符后面跟一个字符串。Nginx将在这个字符串匹配后停止进行正则表达式的匹配,如 location ^~ /images/,它在匹配了/images/这个字符串后就停止搜索其它正则的location
= : 标识精确查找地址,如 location = / ,只会匹配uri为/的请求
~ : 区分大小写的匹配
~* : 不区分大小写的匹配
!~ : 对区分大小写的匹配取非
!~* : 对不区分大小写的匹配取非
经常会用到的正则表达式有
* ? + . () | ^ $
特殊字符说明
{n} : 重复n次
{n,} : 重复n次或更多次
{n,m} : 重复n到m次
*? : 重复任意次,但尽可能少重复
+? : 重复1次或更多次,但尽可能少重复
?? : 重复0次或1次,但尽可能少重复
{n,m}? : 重复n到m次,但尽可能少重复
{n,}? : 重复n次以上,但尽可能少重复
案例
说明:本案例(1)使用Nginx调度服务器做静态数据处理(2)使用内网中独立的Nginx服务器处理静态数据
1.使用Nginx调度处理静态数据(视频,图片,音乐等可视化数据),LAMP处理动态数据
(1)搭建LAMP主机
参考博客:http://www.cnblogs.com/zhichaoma/p/7487186.html
(2)配置Nginx调度服务器
搭建Nginx服务:参考博客:http://www.cnblogs.com/zhichaoma/p/7570210.html
在server{};段中加入以下代码
location ~ \.php$ { #匹配以.php为结尾的动态页
proxy_pass http://LAMP的IP地址(192.168.10.10); #proxy_xy 意思是代理交给谁
}
检查配置文件是否正确并启动
nginx -t
nginx
将静态数据文件拷贝到Nginx服务的网站根目录下
location / {
root html; //可以在这里指定指定根目录
index index.html index.htm;
}
这里将数据默认存放在 nginx/html/ 下
(3)在LAMP服务器上创建一个 test.php测试文件
<?php
echo "Welcome to My site"."<br/>";
echo "<img src='1.jpg'>";
?>
test.php
使用客户端访问Nginx调度服务器的IP地址,Nginx调度服务器会将php的请求转交给LAMP服务器处理,而静态数据(这里是一张图片)会从Nginx调度服务器中去取
2.使用内网中独立的Nginx的服务器处理静态数据
在server{};段中加入以下代码
location ~ \.php$ { #匹配以.php为结尾的动态页
proxy_pass http://LAMP的IP地址(192.168.10.10); #proxy_xy 意思是代理交给谁
} location ~ .*\.(gif|jpg|jpeg|bmp|swf)$ { #这段代码意思是任意网址以这5种格式为结尾就到192.168.10.20服务器寻找资源
proxy_pass http://处理静态数据的Nginx的服务器的IP地址(192.168.10.20);
}
将静态数据文件拷贝到Nginx服务的网站根目录下,检查配置文件,启动服务,使用客户机访问验证
Apache与Nginx动静分离的更多相关文章
- Nginx动静分离实现
Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Ng ...
- Nginx动静分离架构
Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...
- Nginx 动静分离与负载均衡的实现
一.前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题. 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环 ...
- Nginx动静分离架构&&HA-LB集群整合
Nginx动静分离简单来说就将动态与静态资源分开,不能理解成只是单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat,Res ...
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- Nginx动静分离经典
Nginx:安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等]把所需的包下载到/usr/src下[根据自己的习惯,路径可以改变]1.首先安装pcre: cd /usr/s ...
- Nginx动静分离
动静分离 Nginx动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路. ...
- Nginx动静分离知识及配置
Nginx动静分离知识及配置,本质上与分离上传下载功能是相同功能,本质就是在文件服务器也是需要部署WEB应用的,只是在进行代理分离的时候分配到对应的文件服务器上去. 随着Nginx高性能Web服务器大 ...
- Nginx动静分离(Nginx+Tomcat)
第一步:nginx构建 第二步:Tomcat构建 1.Tomcat基础点 (1)Tomcat 是基于java开发的web容器,用来发布java代码和jsp网页. (2)开发人员开发java web网站 ...
随机推荐
- LeetCode 961. N-Repeated Element in Size 2N Array
In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...
- Django 中间件版登录验证
中间件版的登录验证需要依靠session,所以数据库中要有django_session表. urls.py # urls.py from django.conf.urls import url fro ...
- Tarjan算法(缩点)
因为最近在学2sat,需要学习前置技能—Tarjan算法,所以花了一天的时间学习这个算法 算法步骤: 1.从一个点开始dfs,并加入栈 2.如果下一个点没有到过,跳到第一步 3.如果下一个点到过,并且 ...
- C#跨进程读取listview控件中的数据
http://www.cnblogs.com/Charltsing/p/slv32.html 欢迎交流:QQ564955427 读取标准的32位listview控件中的数据,网上已经有很多代码了.今天 ...
- iOS-带图片的二维码的生成(QRCode)
https://blog.csdn.net/feng512275/article/details/82824650 2018年09月23日 20:29:45 筝风放风筝 阅读数:91 版权声明:本 ...
- 爬虫——scrapy框架
Scrapy是一个异步处理框架,是纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可拓展性强,可以灵活完成各种需求.我们只需要定制几个模块就可以轻松实现一个爬虫. 1.架构 Scra ...
- Linux 典型应用之远程连接SSH
查看版本 cat /etc/redhat-release 如果ifconfig不能使用 yum install net-tools 修改配置 vim /etc/sysconfig/network-sc ...
- Requires: libc.so.6(GLIBC_2.14)(64bit)
centos6 - CentOS 6 - libc.so.6(GLIBC_2.14)(64bit) is needed by - Server Faulthttps://serverfault.com ...
- Linux系统中常用的命令汇总
日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了 1) 查看某个服务的运行情况 (例如Redis) ps -ef | grep redis //e-显示程 ...
- [转帖]Windows 操作系统有哪些原生的工具和软件不被人了解却很有用?
Windows 操作系统有哪些原生的工具和软件不被人了解却很有用? 蛋蛋 司马米青E1E1九木 https://www.zhihu.com/question/25343481/answer/30798 ...