zoukankan      html  css  js  c++  java
  • Nginx+Apache动静分离

      Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项

      针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。

      在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式

    一、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次以上,但尽可能少重复

     二、配置实现Nginx动静分离

    1、需求分析:本案例根据企业需要,将配置Nginx实现动静分离,对php页面的请求转发给LAMP处理,而静态页面交给Nginx,以实现动静分离。客户请求静态数据给Nginx,Nginx直接应答客户端,当请求动态数据到Nginx时,Nginx让客户端去找LAMP,通过代理的方式,LAMP就和客户端连接了。

    2、配置步骤:分别配置动态分离和静态分离

    (1)架设并调试后端LAMP架构,指定域名为www.bt.com,IP地址为192.168.10.23,创建动态页面test.php。

    (2)配置Nginx(192.168.10.22)处理动态页面请求,并把域名改为www.test.com 在server{};段中加入以下代码,检测语法后,重启Nginx

      location ~ .php$ {                                        #匹配以.php为结尾的动态页
      proxy_pass  http://LAMP的IP地址(192.168.10.23) : 80;      #proxy_xy 意思是代理交给谁
      }

    (3)客户端输入http://192.168.10.22/test.php 成功后动态分离就实现了,接下来再配置静态分离

    (4)配置Nginx处理静态页面请求,在server{};中加入以下代码,检测语法后,重启Nginx

    location ~ .*.(gif|jpg|jpeg|bmp|swf)$  {                #这段代码意思是任意网址以这5种格式为结尾就到Nginx根目录下的html文件夹寻找资源
      root   html;
      expires 1d; #缓存一天   }

    (5)在nginx的html目录中,放入图片aa.jpg,然后在apache的动态测试页test.php中添加

    <html>
    <body>
    <img src="http://192.168.10.22/aa.jpg">
    </body>
    </html>

    (6)客户端输入http://192.168.10.22/test.php测试,由于test.php是动态页面,因此客户端会找到LAMP架构中的Apache,然后调取图片aa.jpg是静态数据,所以从Nginx提取,最后反馈给客户端。

  • 相关阅读:
    hdu 4081 Qin Shi Huang's National Road System
    Finding Team Member
    hdu 5491 The Next
    Queue
    Backward Digit Sums
    HDU
    HDU
    CodeForces 500 A. New Year Transportation
    拓扑排序
    “玲珑杯”ACM比赛 Round #1 题解
  • 原文地址:https://www.cnblogs.com/mangood/p/6048720.html
Copyright © 2011-2022 走看看