企业网站部署与优化--nginx动静分离与网页优化


前言
在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。

一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。

在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。

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:配置要点2-1

架设并调试后端LAMP环境

安装配置 Nginx处理静态页面请求,在 server{};段中加入

[root@nginxphp5]# vim/usr/local/httpd/conf/nginx.conf
location ~.*\.(gif|jpg|jpeg|bmp|swf)${
    root html;
    index index.html index.htm;
};

1.3.3:配置要点2-2

在 Apache工作目录新建 test. php

重启Nginx并测试

[root@nginxphp5]# vim /usr/local/httpd/conf/nginx.conf
  server {
  ...
  location ~\.php${
      proxy_pass http://192.168.100.108080 '//将原本的127.0.0.1修改'
  } 
'//192.168.100.10:8080是LAMP的IP地址'

1.4:Nginx动静分离方法总结

静态页面交给 Nginx处理

动态页面交给 PHP-FPM模块或 Apache处理

1.5:动静分离详细过程整理

1.5.1:动态Apache主机设置

yum install httpd httpd-devel -y 	'//安装Apache'

systemctl start httpd.service 

firewall-cmd --permanent --zone=public --add-service=http
success 

firewall-cmd --permanent --zone=public --add-service=https
success 

firewall-cmd --reload 		'//以上的是防火墙设置,也可以直接关闭防火墙'
success 

yum install mariadb mariadb-server mariadb-libs mariadb-devel -y 	'//安装数据库,是mysql的一个分支'

systemctl start mariadb 

mysql_secure_installation	'//一键式设置数据库信息'

yum -y install php

yum install php-mysql -y	'////建立php和mysq1关联'

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插件'

cd /var/www/html
vim index.php

<?php
phpinfo();
?>

'//重启服务'

1.5.2:静态nginx主机设置

[root@nginx nginx-1.12.2]# yum -y install gcc gcc-c++ make pcre-devel expat-devel perl zlib-devel pcre
[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/nginx /usr/local/sbin
[root@nginx nginx-1.12.2]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx 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

[root@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx 
[root@nginx nginx-1.12.2]# chkconfig --add nginx   可以用service来进行管理了
[root@nginx nginx-1.12.2]# yum install elinks -y
[root@nginx nginx-1.12.2]# service nginx start 
[root@nginx nginx-1.12.2]# iptables -F
[root@nginx nginx-1.12.2]# setenforce 0
[root@nginx nginx-1.12.2]# elinks http://192.168.100.8
[root@nginx nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
其他主机访问 ip/index.html (静态)
            ip/index.php (动态)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47151650/article/details/107958210