nginx动静分离与资源分离

Posted FikL-09-19

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx动静分离与资源分离相关的知识,希望对你有一定的参考价值。

nginx动静分离

[root@pingweb01 ~]# cd /mm/
[root@pingweb01 mm ]# cat mm.php 
<?php
$arr=range(1,10);
shuffle($arr);
foreach($arr as $values)
{
 echo $values." ";
}
?>
[root@pingweb01 ~]# cd /mm/
[root@web01 mm]# cat index.php 
<?php
echo '<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body style="color: red" background="/5.pg"><h1>Hello(嗨),我是陈阳,大家可以叫我阳哥!</h1><ul><li>上海</li><li>北京</li><li>杭州</li></ul></body></html>';
<?php
$arr=range(1,10);
shuffle($arr);
foreach($arr as $values)
{
 echo $values."<br/> ";
}
?>
# 1.创建图片文件
[root@pingweb01 mm]# cd picture/
[root@pingweb01 picture]# ll
total 116
-rw-r--r-- 1 www www 24864 May  5 22:42 100.jpg
-rw-r--r-- 1 www www 86756 Mar 27 18:02 5.png

# 2.nginx文件调用
[root@web01 mm]# vim /etc/nginx/php.params 
  location ~* \\.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
# 3.编写配置文件

[root@web01 mm]# vim /etc/nginx/conf.d/test.conf 
server {
    listen 80;
    server_name -;
    root /mm/;
    location / {
		index index.php index.html;
    }
     location ~* \\.(jpg|gif|png|jpeg)$ {
        root /mm/picture;
    }
    include php.params;
}

# 4.重启nginx
[root@web01 mm]# systemctl restart nginx
# 5.本地hosts访问
192.168.15.7


# 1.静态资源在另一台机器
[root@db01 ~] yum -y install nginx
# 2.最好配置成官方源nginx
# 3.上传文件
 [root@db01 ~] cd /usr/share/nginx/html
 [root@db01 html] rz
 [root@db01 html]# ll
total 116
-rw-r--r-- 1 www www 24864 May  5 22:42 100.jpg
-rw-r--r-- 1 www www 86756 Mar 27 18:02 5.png
# 4.配置文件
[root@db01 html]# cat /etc/nginx/conf.d/picture.conf 
server {
	listen 80;
	server_name _;
	root /usr/share/nginx/html;
	location / {
		index index.png;
	}
}
# 4.重启nginx
[root@db01 html]# systemctl restart nginx

# 1.web端测试访问
[root@web01 conf.d]# cat test.conf 
upstream picture {
	server 172.16.1.51:80;
}
server {
	listen 80;
	server_name _;
	root /www/test;	
	location / {
		index index.php index.html;
	}
	location ~* \\.(gif|jpg|png)$ {
		proxy_pass http://picture;
	}
	include php.params;	
}
#2.重启nginx
[root@web01 conf.d]# systemctl restart nginx
# 3.本地hosts访问
192.168.15.7

nginx资源分离

按照访问的资源的不同,访问的结果也不同。

按照不同的设备,返回不同的页面,这种类型叫做资源隔离
1.配置站点
[root@web01 conf.d]# mkdir /mm/{android,pc,iphone}
[root@web01 conf.d]# echo "我是Android" > /mm/android/index.html
[root@web01 conf.d]# echo "我是Iphone" > /mm/iphone/index.html
[root@web01 conf.d]# echo "我是computer" > /mm/pc/index.htm
[root@web01 conf.d]# chown -R www.www /mm/
2.代理配置
[root@web01 conf.d]# cat iphone.conf 
server {
	listen 8082;
	server_name _;
	location / {
		root /www/resources/iphone;
		index index.html;
	}
}

[root@web01 conf.d]# cat android.conf 
server {
	listen 8081;
	server_name _;
	location / {
		root /mm/android;
		index index.html;
	}
}

[root@web01 conf.d]# cat pc.conf 
server {
	listen 8083;
	server_name _;
	location / {
		root /mm/pc;
		index index.html;
	}
}

# 重启nginx
[root@lb01 conf.d]# systemctl restart nginx
3、配置服务器文件
[root@web01 conf.d]# cat all.conf 
upstream android {
    server 172.16.1.7:8081;
}

upstream pc {
    server 172.16.1.7:8083;
}

upstream iphone {
    server 172.16.1.7:8082;
}

server {
    listen 80;
    server_name _;
    location / {
       if ($http_user_agent ~* "Android" ) {
	   proxy_pass http://android;
       }
       if ($http_user_agent ~* "iphone" ) {
           proxy_pass http://iphone;
       }
       if ($http_user_agent ~* "Trident" ) {
           return 403;
       }
       proxy_pass http://pc;
    }
}
4.本地hosts访问测试
192.168.15.7 

以上是关于nginx动静分离与资源分离的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 动静分离概述

Nginx 动静分离概述

动静分离-nginxRewrite-set与if使用场景.

Nginx+Tomcat的负载均衡与动静分离集群

Nginx 和 IIS 实现动静分离转载

15.Nginx动静分离Rewrite