Nginx动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说,就是使用正则表达式匹配过滤,然后交个不同的服务器。

动静分离

实质 :使用正则表达式,匹配过滤,交给不同的服务器

优点 :把动态页面和静态页面分别由不同的服务器来解析,加快解析速度,降低单个服务器的压力

环境准备

静态资源配置(10.36.192.169)

yum安装nginx

访问nginx的网站,nginx.org  进去找到nginx的yum源
在命令行输入

echo '
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true ' > /etc/yum.repos.d/nginx.repo
清理缓存,生成自己缓存,列出yum仓库
yum clean all
yum makecache
yum repolist
yum install yum-utils
yum -y install nginx
修改配置文件
vim /etc/nginx/conf.d/default.conf
server {
        listen 80;
        server_name     localhost;

        location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
        root /usr/share/nginx/html;
        }
}
重启nginx
nginx -t   #检查配置的语法有无问题
nginx -s reload   #重载配置

动态资源配置(192.168.20.135)

yum安装php
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php71w-xsl php71w php71w-ldap php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php71w-mcrypt -y
yum install -y php71w-fpm
systemctl start php-fpm
systemctl enable php-fpm

yum 安装nginx方法如上

修改nginx配置文件
vim /etc/nginx/conf.d/default.conf
server {
        listen      80;
        server_name     localhost;
        location ~ \.php$ {
            root           /usr/local/nginx/html;  #指定网站目录
            fastcgi_pass   127.0.0.1:9000;    #指定访问地址
            fastcgi_index  index.php;		#指定默认文件
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
            include        fastcgi_params;  #包含nginx常量定义
        		}
        }
重启nginx
nginx -t
nginx -s reload

nginx代理机配置(192.168.20.134)

修改nginx子自配置文件
vim /etc/nginx/conf.d/default.conf
upstream static  {
  server 10.36.192.169   weight=1  max_fails=2  fail_timeout=2s;
}
upstream php {
  server 192.168.20.135   weight=2  max_fails=2  fail_timeout=2s;              
}

server {

   listen       80;
   server_name  localhost;
   location ~ \.php$ {
           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;
               }
location ~ .*\.(html|gif|jpg|png|bmp|swf|css|js)$ {
           proxy_pass http://static;
           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
nginx -t
nginx -s reload

客户端访问

Nginx动静分离_第1张图片

Nginx动静分离_第2张图片

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

你可能感兴趣的:(nginx动静分离)