一、动静分离的简介
-
Nginx 的静态处理能力很强,常用处理静态请求,但是动态处理能力不足,因此,在企业中常用动静态分离技术。
-
针对 PHP 的动静分离,静态页面交给Nginx 处理,动态页面交给PHP-FPM模块或 Apache处理
-
在Nginx的配置中,是通过location 配置段配合正则匹配实现静态与动态页面的不同处理方式。
二、反向代理原理
- Nginx 不仅能作为 Web服务器,还具有反向代理、负载均衡和缓存的功能。
- Nginx 通过 proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的。
- nginx 在实现反向代理功能时的最重要指令为:proxy_pass 它的处理逻辑将用户请求调度至上游服务器。
三、配置实验
3.1、实验要求
根据企业需要,将配置nginx 实现动静分离,对PHP页面的请求转发给LAMP 处理,而静态页面交给 nginx处理,以实现动静分离。
3.2、环境准备
准备两台centos虚拟机,第一台已经搭建好 Nginx配置,第二台用于搭建 LAMP平台。
Nginx服务 | LAMP平台 |
---|---|
192.168.220.140 | 192.168.220.136 |
3.3、架构LAMP
1、安装 http,关闭防火墙
yum -y install httpd htppd-devel
systemctl stop firewalld
setenforce 0
2、安装数据库MySQL,并开启服务
yum -y install mariadb mariadb-server mariadb-libs mariadb-devel
systemctl start mariadb
3、给MySQL数据库设置密码,进行数据库配置
mysql_secure_installation
Enter current password for root (enter for none): //回车
Set root password? [Y/n] y //输入y,回车
New password: //输入密码:abc123
Re-enter new password: //输入密码:abc123
4、安装 php ,建立php和mysql关联
yum -y install php
yum -y install php-mysql
5、安装php插件
yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath
6、新建PHP网页内容文件
cd /var/www/html
vim index.php
<?php
echo "This is Apache web";
?>
7、重启服务,在nginx的浏览器中输入 192.168.220.136/index.php
systemctl restart httpd
systemctl restart mariadb
3.4、架构Nginx的静态分离
nginx的安装已经提前配置好了,需要的可以看上一篇博客,链接为:Nginx 的配置
1、修改 Nginx 的配置文件,将PHP文件请求转发到 Apache 处理。
vim /usr/local/nginx/conf/nginx.conf
2、重启nginx服务
service nginx restart
3、在nginx的浏览器中访问网站:192.168.220.140/index.php 验证
- php是动态请求, html是静态请求。
- 如果是静态请求,Nginx直接进行处理,若是动态请求,nginx自动将动态请求转发给Apache处理。
访问网站:192.168.220.140/index.html
四、实验总结
1、LAMP架构的yum安装,配置php页面
2、Nginx的安装
3、Nginx开启反向代理功能
4、用静态请求和动态请求验证实验