Nginx深入了解-高级(一)

Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术。动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理。在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式。

假如我们有一个页面,既有静态资源如图片、js文件等,也有动态的ajax请求,如下:

<!DOCTYPE html>
<html>
    ....
    <div>
        <img src="https://www.mantis.me/img/abc.jpg">
    </div>
    <script>
        $.ajax{
            type: POST,
            url: "https://www.mantis.me/user/add.php",
            dataType: JSON,
            success: function() {}
        }
    </script>
    <script src="https://www.mantis.me/static/js/main.js"></script>
</html>

我们可以通过nginx正则匹配和location将静态资源和动态请求分离:

upstream api {
    server 127.0.0.1:8080;
}
server {
    listen 80;
    server_name localhost;
    access_log /var/logs/nginx/access.log main;
    root /opt/app/code;

    location ~ \.php$ {
        proxy_pass http://api;
        index index.html index.htm index.php;
    }
    location ~ \.(jpg|jpeg|png|gif)$ {
        expires 1h;
        gzip on;
    }
    ......
}

  转载请注明: Mantis Nginx深入了解-高级(一)

 上一篇
Nginx深入了解-高级(二) Nginx深入了解-高级(二)
Nginx的Rewrite规则,实现url的重定向以及重写,用来实现特定场景的支持;比如特定页面、接口的转发等。 一,场景1)URL访问跳转,支持开发设计 ​ 页面跳转、兼容性支持、展示效果等。 2)SEO优化 ​
2018-08-18 Mantis
下一篇 
Nginx深入了解-进阶(四) Nginx深入了解-进阶(四)
Nginx同样可以用来作为缓存服务;客户端浏览器缓存我们称之为客户端缓存,后端使用Redis、Memcache等缓存服务我们称之为后端缓存,同理Nginx作为缓存服务我们就称之为代理缓存。 一,Nginx作为代理缓存的流程示意图:
2018-08-12 Mantis