nginx实现动静分离

准备3台服务器

关闭所有服务器防火墙和selinux

1、第一台服务器yum安装nginx

进入nginx子配置文件

配置nginx反向代理upstream;
upstream html {
server 10.36.192.136;
}
upstream php {
server 10.36.192.90;
}
#静态资源加载
location ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$ {
proxy_pass http://html;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#动态资源加载
location ~ \.html$ {
proxy_pass http://php;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

重启nginx服务

systemctl restart nginx

2、静态资源配置

第二台服务器yum安装nginx

启动nginx服务,查看网站是否可以访问

3、动态资源配置:
第三台服务器yum 安装php和nginx
进入nginx子配置文件编辑:
server {
listen 80;
server_name localhost;

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;  #在index.htm 后添加index.php
}

location ~ \.php$ {
root /usr/share/nginx/html; #指定网站目录
fastcgi_pass 127.0.0.1:9000; #指定访问地址
fastcgi_index index.php; #指定默认文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #站点根目录,取决于root配置项 $document_root改为网站目录路径
include fastcgi_params; #包含nginx常量定义
}
}

当访问静态页面的时候location 匹配到 (html|jpg|png|js|css|gif|bmp|jpeg) 通过转发到静态服务器,静态服务通过location的正则匹配来处理请求。

当访问动态页面时location匹配到 .php 结尾的文件转发到后端php服务处理请求。

重启nginx服务

systemctl restart nginx

进入网站目录/usr/share/nginx/html下

cd /usr/share/nginx/html

删除原本文件: rm -rf *

创建一个index.php文件

echo “php” > index.php

nginx配置动静分离成功