nginx代理http实现动静分离。

本文介绍了如何通过nginx实现动态页面与静态页面的分离,以提高网站解析速度并减轻服务器压力。主要配置包括匹配动态PHP文件的代理以及静态HTML、图片资源的处理,分别转发到不同的服务器进行处理。
摘要由CSDN通过智能技术生成

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,
简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。

准备一个nginx代理 两个http 分别处理动态和静态。也可以让nginx代理自己解析静态网页,不过nginx又代理又解析网站感觉压力也挺大的。



这里nginx的安装就不在写了,其中重要的配置如下。



  location / {
            root   /var/www/html/upload;
            index  index.php index.htm;
        }

     

  location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ {

                proxy_pass http://192.168.43.22:80;
        }
        location ~ \.php$ {
            proxy_pass   http://192.168.43.62:80;
        }

location /  的作用

定义了请求代理的时候nginx去/var/www/html/upload  下寻找index.php 当他找到index.php的时候匹配了下面的正则  location ~ \.php$


location ~ \.php$   的作用

以php结尾的都以代理的方式转发给http(192.168.43.62),http1 去处理,这里http1要去看自己的配置文件 在自己的配置文件中定义网站根目录 /var/www/html/upload  找.index.php  然后处理解析返回给nginx 。

 location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$  的作用

以html等等的静态页面都交给http2(192.168.43.22)来处理 ,http2 去找自己的网站目录 然后返回给nginx 。

两个http放的肯定是一样的目录,只不过每个服务器的任务不一样。

代理本身要有网站的目录,因为最上面的 location / 先生效   如果没有目录 会直接提示找不到目录 不会再往下匹配。


3个服务器放网站的目录一样 网站文件一样,  http的配置文件 根目录要指定对。

--------------------------------------------------

http1的配置文件 (处理php的机器)




 


----------------------------------------------

http2 (处理html的网站)

配置一样 只不过多写了个html的网页测试



-----------------------------------------------------

访问代理服务器



可以在http1上看访问日志是http1处理的网站



访问html的网页


在http2上看访问日志 可以看到是http2处理的




好了, 到此结束 ,希望对你有所帮助。







评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值