一,什么是动静分离
动静分离主要是通过nginx+PHP-FPM来实现,其中nginx处理图片,html等静态的文件,PHP处理动态程序[PHP-FPM]
简单点来说,就是用户在请求的时候,如果只是简单的访问图片,html等静态的请求时,nginx直接返回,如果是发送动态请求时候,需要程序进行就由nginx把请求发送给程序,进行动态处理
二,结构图
location \.php$ {
root html;
fastcgi_pass 192.168.253.131:9000;
fast_index index.php;
fastcgi_param SCRIPT_FILENAME /www/html$fastcgi_script_name;
include fastcgi_params;
}
location .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff) {
proxy_pass http://192.168.8.203:8080;
expires 30d;
}
location .*\.(gif|jpg|jpeg|png|bmp|swf)$ ###所有的静态文件gif,jpg等都在本地打开,存放的目录为/usr/local/nginx/html,保存时间为30天
{
root /usr/local/nginx/html;
expires 30d;
}
前端为一台nginx调度器,负责动静分离调度到后端不同主机,后端两台web服务器负责响应静态请求,两台php服务器负责响应动态请求,并且php会话保存在redis中,注意配置upstream server时location定义的访问的url,而且要在http配置段定义,在server配置段调用,相关配置指令使用的位置不能写错地方,后端主机上各服务启动配置好.