Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术
针对PHP的动静分离
静态页面交给 Nginx处理
动态页面交给 PHP-FPM模块或 Apache处理
在 Nginx的配置中,是通过 ocation配置段配合正则匹配实现静态与动态页面的不同处理方式
1.2 反向代理的原理
location ~.*\.(gif|jpg|jpeg|bmp|swf)${
root html;
index index.html index.htm;
};
小结:我们配置的思路,就是将静态页面的处理交给Nginx,动态页面的处理则交给PHP-FPM模块或者Apache。
环境:准备两台centos7虚拟机,一台为LAMP架构,一台为Nginx
[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
[root@lamp ~]# systemctl start httpd.service
[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
[root@lamp ~]# yum -y install php
[root@lamp ~]# yum install php-mysql -y
[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
[root@lamp ~]# cd /var/www/html/
[root@lamp html]# ls
[root@lamp html]# vim index.php
phpinfo();
?>
------->wq
[root@lamp html]# systemctl stop httpd.service
[root@lamp html]# systemctl start httpd.service
[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
[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
本篇博客介绍了Nginx+ Apache实现动静分离的操作过程,在之后会介绍Nginx网页优化~