动静分离示意图
准备我将用三个端口(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时,下面的动态页不显示,不影响静态资源的加载。这也是动静分离的好处之一,可以提高访问性能和可掩护性,以及提高用户体验度。