通过负载均衡中间件,将动态请求和静态请求进行分离。这样做的好处是,加速访问,动态与静态资源互不影响,即使动态服务不可用,静态资源也能照常访问。

动静分离示意图

准备

我将用三个端口(80,8001,8002)代表负载均衡,静态资源,动态资源。当然你也可以使用其他服务器来提供静态和动态服务。

我是在centos7上测试,默认开启了firewall防火墙,所以要将两个端口打开。

静态资源server配置

将所有图片相关的请求转至8001端口,并将目录设为"/mnt/static/image“。

我在上述目录中从”http://nginx.org/nginx.png“下载了这张图片做测试。

# wget http://nginx.org/nginx.png

当请求"http://localhost:8001/nginx.png"时,能看到图片则配置成功。

动态资源server配置

以php5.4为例,下载并安装php-fpm来配置动态网页解析。在centos7中可以直接用yum下载安装。

#  yum install php#  yum instal php-fpm# systemctl start php-fpm

nginx配置如下(默认nginx会有如下配置,只需将前面井号删除即可,并修改标红处):

在目录html新建一个test.php文件

<?phpecho "dynamic Web page";

请求"http://localhost:8002"时,出现如下页面,则配置成功。

负载配置

主要使用了”upstream“和"proxy_pass"这两个指令。

如果配置完成重启nginx报"proxy_params not found"的错误 ,可以在同目录下新建此文件,内容如下:

proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;

当我们请求”http://localhost/nginx.png“和”http://localhost/test.php“能出现与带端口号访问一致的结果时,则表明配置成功。

最终测试

我在目录”/mnt/www“中新建了一个index.html,内容如下:

当访问”http://localhost“时,会出现如下结果,动静态页面均能正确访问。

当我将8002端口所对应的server关闭或其他影响不能正常访问动态php时,下面的动态页不显示,不影响静态资源的加载。这也是动静分离的好处之一,可以提高访问性能和可维护性,以及提高用户体验度。

nginx动静分离配置_nginx动静分离实战相关推荐

  1. nginx动静分离配置_Nginx 动静分离与负载均衡的实现

    一.前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题. 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环 ...

  2. nginx动静分离配置_Nginx动静分离配置实例

    点击▲关注 "长安大司马"   给公众号标星置顶 更多精彩 第一时间直达 父亲节快乐 HAPPY FATHER'S DAY 1 .什么是动静分离 Nginx 动静分离简单来说就是把 ...

  3. nginx动静分离配置_Nginx动静分离

    动静分离   动静分离,就是将JSP.Servlet等动态资源交由Tomcat或其他Web服务器处理,将CSS.js.image等静态资源交由Nginx或其他Http服务器处理,充分发挥各自的优势,减 ...

  4. nginx 负载均衡配置_Nginx负载均衡NFS配置

    Nginx配置 首先在两台服务器上部署同一个项目,例如下: 测试网站节点1: http://192.168.168.61/nfstest/ 测试网站节点2: http://192.168.64.145 ...

  5. nginx 正则 结尾 配置_nginx location 配置阐述优先级别使用说明-不当可能存在安全隐患...

    使用nginx 有好几年了,它的高性能,稳定性表现都很好. 这里也得到很多人的认可. 其中它的配置,有点像写程序一样,每行命令结尾一个";"号,语句块用"{}" ...

  6. nginx 正则 结尾 配置_nginx正则配置解释多用于伪静态规则

    1.^: 匹配字符串的开始位置: 2. $:匹配字符串的结束位置: 3..*:   .匹配任意字符,*匹配数量0到正无穷: 4.\. 斜杠用来转义,\.匹配 .    特殊使用方法,记住记性了: 5. ...

  7. nginx php.ini配置_Nginx下修改php.ini后重新加载配置文件命令

    修改php.ini后 如,我的 php.ini 文件是放在 /etc/php.ini php 所在目录是 /www/Linux/php-5.2.17 修改 php.ini 后要用 php-fpm 来进 ...

  8. nginx安装、nginx前端配置、后端配置、前后端分离配置、https支持(ssl配置)、负载均衡配置、nginx location详解

    nginx配置 一.nginx安装 二.nginx配置 仅前端配置 仅后端配置 前后分离配置(1) 前后分离配置(2) 前后不分离配置 https/ssl配置 负载均衡配置 数据压缩配置 三.完整ng ...

  9. nginx 的动静分离配置(tomcat)

    nginx+tomcat是想动静分离配置 首先在nginx的配置文件中添加tomcat的的集群配置 upstream tomcats { ip_hash; server 192.168.0.251:8 ...

最新文章

  1. PowerShell-6.文件操作
  2. MySQL第9天:MySQL索引优化分析之join查询
  3. little problem
  4. Quartz.net 开源job调度框架(一)
  5. HTML5 API详解(3):为何网页上要增加Battery电池状态API
  6. php生成excel范例,支持任意行列
  7. 造谣无下限!众泰汽车被“破产”,官方声明:子虚乌有 已报案
  8. c语言基础知识孙小红,基于J2EE的C语言在线学习系统的设计与实现
  9. pycharm激活码永久有效2019年5月28日
  10. java继承和接口的区别_java中的接口与继承的区别
  11. 路由追踪测试软件,路由追踪命令是什么 使用路由追踪的技巧
  12. Unity初级案例 - 吃豆人(Unity2017.2.0)Day 2
  13. Duplicate问题
  14. 制作启动u盘总结 centos6/centos7
  15. 北邮电教授思想洗礼之不二之选TGB
  16. 一文读懂计算机组成,一文读懂为什么要做动态心电图检查?
  17. ubuntu系统下格式化移动硬盘
  18. 如何使用 aph-cli 搭建本地静态开发环境(server + proxy + mock)
  19. 两个开关同时控制一盏灯
  20. zemax-01 衍射级次

热门文章

  1. C# Enum,Int,String的互相转换
  2. oracle - emctl start dbconsole
  3. python magic文档
  4. MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
  5. 操作系统(三十四)覆盖和交换
  6. 元器件基础知识--排阻命名
  7. Java开发:(执行系统(例cmd)命令)Runtime.getRuntime().exec()参数解释
  8. leetcode-无重复字符的最长子串
  9. Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)
  10. libnghttp2 NDK 交叉编译