nginx动静分离配置_nginx动静分离实战

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

a7008cb756a2eeb4b819a9a412eb4c43.png

动静分离示意图

准备

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

33d05b55a9609fcb2b56c214c67be951.png

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

bb165b9d07220700ce6e5e8ef296b188.png

静态资源server配置

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

ef85d65ac83b9c04e9802d4b4161a821.png

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

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

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

5620929fbac2a5237010c32894011c44.png

动态资源server配置

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

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

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

3331efd593dd28512d490e76ce66779f.png

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

<?phpecho "dynamic Web page";

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

5afc2d8865e812c75bcd239ac1f02765.png

负载配置

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

1ac37e7610415a660f224bef110f0e94.png

如果配置完成重启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,内容如下:

4ae90bfef559fb12f89b7bb39b3112c1.png

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

543f733892432735a8dd536428d5d992.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值