文章目录
前言:
- 因nginx的静态处理能力很强,但动态处理能力不足,所以在企业中常采用动静分离技术
- 针对PHP,将静态页面交给nginx处理,动态页面交给PHP-FPM模块或Apache处理
- 在nginx的配置文件中,是通过location配置段配合正则匹配来实现静态与动态页面的不同处理方式
- 在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行相应参数配置,以达到最优的用户体验
- 默认的nginx安装参数只能供最基本的服务,还需要调整如网页缓存时间,连接超时,网页压缩等相应参数,餐能发挥出服务器的最大作用
一、Nginx+Apache动静分离原理
1.1 Nginx动静分离概述
-
Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术
-
针对PHP的动静分离
静态页面交给 Nginx处理
动态页面交给 PHP-FPM模块或 Apache处理
-
在 Nginx的配置中,是通过 ocation配置段配合正则匹配实现静态与动态页面的不同处理方式
1.2 反向代理的原理
- Nginx不仅能作为Web服务器,还具有反向代理、负载均衡和缓存的功能
- Nginx通过 proxy模块实现将客户端的请求代理至上游服务器,此时ngInx与上游服务器的连接是通过http协议进行的
- Nginx在实现反向代理功能时的最重要指令为proxy pass,它能够并能够根据UR、客户端参数或其它的处理逻辑将用户请求调度至上游服务器
1.3 Nginx实现动静分离配置
1.3.1 动静分离需求
- 我们根据需要,将配置Nginx实现动静分离,对php页面的请求转发给LAMP处理,而静态页面交给Nginx处理,从而实现动静分离
1.3.2 配置重点
- ① 部署LAMP
- ② 安装、调整Nginx,修改主配置文件,在server {}段中加入以下内容:
location ~.*\.(gif|jpg|jpeg|bmp|swf)${
root html;
index index.html index.htm;
};
- ③ 在Apache工作目录中创建test.php
- ④ 重启Nginx,进行测试
小结:我们配置的思路,就是将静态页面的处理交给Nginx,动态页面的处理则交给PHP-FPM模块或者Apache。
二、Nginx+Apache动静分离(实验)
环境:准备两台centos7虚拟机,一台为LAMP架构,一台为Nginx
2.1 搭建LAMP架构
2.1.1 Apache服务安装与配置
- 安装Apache服务
[root@lamp ~]# yum -y install httpd httpd-devel
- 添加防火墙规则(实验可选)
[root@lamp ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@lamp ~]# firewall-cmd --permanent --zone=public --add-service=https
[root@lamp ~]# firewall-cmd --reload
#允许http、https服务通过,reload刷新防火墙规则
实验中也可以直接关闭防火墙
[root@lamp ~]# systemctl stop firewalld.service
[root@lamp ~]# setenforce 0
- 开启Apache服务
[root@lamp ~]# systemctl start httpd.service
2.1.2 mariadb数据库安装配置
- 安装mariadb环境包
[root@lamp ~]# yum install mariadb mariadb-server mariadb-libs mariadb-devel -y
mariadb 较mysql而言是轻量级的数据库,安装便利,在对配置文件进行个性化设置后即可使用
- 开启数据库
[root@lamp ~]# systemctl start mariadb.service
[root@lamp ~]# netstat -natp | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3341/mysqld
- 配置数据库项
2.1.3 php安装与配置
- 安装php、php与mysql的关联包
[root@lamp ~]# yum -y install php
[root@lamp ~]# yum install php-mysql -y
- 安装php插件
[root@lamp ~]# 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
- 调整php首页信息
[root@lamp ~]# cd /var/www/html/
[root@lamp html]# ls
[root@lamp html]# vim index.php
<?php
phpinfo();
?>
------->wq
- 重启Apache服务
[root@lamp html]# systemctl stop httpd.service
[root@lamp html]# systemctl start httpd.service
2.1.4 测试
2.2 Nginx安装、配置
2.2.1 Nginx安装
- 下载共享文件并解压
[root@nginx ~]# mount.cifs //192.168.181.1/LAMP-C7 /mnt
Password for root@//192.168.181.1/LAMP-C7:
[root@nginx ~]# cd /mnt/LNMP-C7/
[root@nginx LNMP-C7]# ls
Discuz_X3.4_SC_UTF8.zip php-5.6.11.tar.bz2
jdk-6u14-linux-x64.bin php-7.1.10.tar.bz2
mysql-boost-5.7.20.tar.gz php-7.1.20.tar.bz2
ncurses-5.6.tar.gz php-7.1.20.tar.gz
nginx-1.12.2.tar.gz zend-loader-php5.6-linux-x86_64_update1.tar.gz
[root@nginx LNMP-C7]# tar xzvf nginx-1.12.2.tar.gz -C /opt
- 创建程序用户
[root@nginx LNMP-C7]# useradd -M -s /sbin/nologin/ nginx
- 安装环境包
[root@nginx LNMP-C7]# yum install pcre-devel zlib-devel gcc gcc-c++ -y
- 编译
[root@nginx LNMP-C7]# cd /opt/nginx-1.12.2/
[root@nginx nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
[root@nginx nginx-1.12.2]# make && make install
- 创建软链接
[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin
- 创建启动脚本
[root@nginx nginx-1.12.2]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Ngi nix Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
------》wq
[root@nginx init.d]# chmod +x nginx
- 启动服务
[root@nginx init.d]# chkconfig --add nginx
[root@nginx init.d]# chkconfig --level 35 nginx on
[root@nginx init.d]# service nginx start
[root@nginx init.d]# netstat -natp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6020/nginx: master
[root@nginx init.d]# systemctl stop firewalld.service
[root@nginx init.d]# setenforce 0
2.2.2 Nginx配置
- 开启反向代理功能
[root@nginx init.d]# vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
proxy_pass http://192.168.181.129;
}
#在nginx主配置文件59行位置将反向代理功能开启,并修改地址指向LAMP服务器即可
- 重启服务
[root@nginx init.d]# service nginx stop
[root@nginx init.d]# service nginx start
2.3 访问测试
- 使用一台win10虚拟机访问Nginx服务器地址进行测试
总结:
本篇博客介绍了Nginx+ Apache实现动静分离的操作过程,在之后会介绍Nginx网页优化~
来源:CSDN
作者:weixin_45726050
链接:https://blog.csdn.net/weixin_45726050/article/details/104133332