nginx动静分离

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
  • 实验拓扑:

 wKioL1kK6LeA1DHkAACmoj4h-8Y942.jpg-wh_50

  • 实验环境:

Nginx分发器 192.168.42.175 xuegod175.cn

Web1服务器 192.168.42.176 xuegod176.cn   作为image图片web服务器

Web2服务器 192.168.42.177 xuegod177.cn   作为php web服务器

 

实验注意:关闭iptables selinux 配置好hosts 文件,两台web服务器这里均使用了nginx

 

  •  实验配置:

nginx实验配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
[root@xuegod175 ~] # cat /usr/local/nginx/conf/nginx.conf
user  nginx nginx;
worker_processes  1;
pid        logs /nginx .pid;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application /octet-stream ;
sendfile        on;
keepalive_timeout  65;
  
#负责压缩数据流
gzip               on;
gzip_min_length   1000;
gzip_types        text /plain  text /css  application /x-javascript ;
  
upstream web {
     server  192.168.42.175 weight=1 max_fails=2  fail_timeout=2;
upstream image  {
     server  192.168.42.176 weight=1 max_fails=2  fail_timeout=2;
upstream php {
     server  192.168.42.177 weight=1 max_fails=2  fail_timeout=2;    
}
server {
        listen 80;
        server_name 192.168.42.175; 
location  / {
     root html /web ;
     index  index.php index.html;
}
location ~* \.php$ {
    root html;
    proxy_pass http: //php ;
}
location ~*  ".(jpg|png|jpeg|gif)"  {
     proxy_pass http: //image ;
}
}
}
Web1服务器配置
[root@xuegod176 conf] # cat nginx.conf
worker_processes  1;
user nginx nginx ;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application /octet-stream ;
     sendfile        on;
     keepalive_timeout  65;
     server {
         listen       80;
         server_name  localhost;
         location / {
             root   html;
             index  index.html index.htm;
         }
        location ~ .*\.(gif|jpg|jpeg|png)$ {    
         expires 24h;  
             access_log  /usr/local/nginx/logs/images .log;    图片日志位置
             proxy_store on;    
             proxy_store_access user:rw group:rw all:rw;    
             proxy_redirect          off;    
             proxy_set_header        Host 127.0.0.1;    
             client_max_body_size    10m;    
             client_body_buffer_size 1280k;    
             proxy_connect_timeout   900;    
             proxy_send_timeout      900;    
             proxy_read_timeout      900;    
             proxy_buffer_size       40k;    
             proxy_buffers           40 320k;    
             proxy_busy_buffers_size 640k;    
             proxy_temp_file_write_size 640k;    
             }    
         location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME   /usr/local/nginx/html $fastcgi_script_name;
             include        fastcgi_params;
         }
     }
}

配置测试文件(支持图片)

[root@xuegod176 html]# ls
50x.html  a  abc.jpg  bin  binbin.jpeg  index.html  index.htmlbak  nginx.conf

从客户端进行访问测试

wKiom1kK88jS7WlxAAB0G87uJho510.jpg-wh_50

 说明nginx web1服务已经成功支持访问图片

通过分发器进行访问测试(图片文件是web1服务器的)

wKioL1kK9DTjK5fNAACMWkYukiw178.jpg-wh_50

说明nginx读写分离已经成功  nginx分发器可以正常的读取web1服务器的图片文件

Web2服务器配置

为了使nginx能够支持访问php环境,这里特意安装了lnmp环境
安装mysql
[root@xuegod177 ]yum -y install mysql mysql-server mysql-devel
[root@xuegod177 ] /etc/init.d/mysqld start
安装php
[root@xuegod177 ]yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml –y
[root@xuegod177 ]yum install php-fpm –y
[root@xuegod177 ]/etc/init.d/php-fpm start
[root@xuegod177 html]# ls
50x.html  index.html  index.html.bak  index.php
[root@xuegod177 html]# cat index.php   创建测试文件
<?php phpinfo(); ?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@xuegod177 conf] # cat nginx.conf
user nginx nginx; 
worker_processes  1;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application /octet-stream ;
     sendfile        on;
     keepalive_timeout  65;
     server {
         listen       80;
         server_name  localhost;
         location / {
             root   html;
             index  index.html index.htm;
         }
         error_page   500 502 503 504   /50x .html;
         location =  /50x .html {
             root   html;
         }
         location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;  使nginx 支持访问php界面
             fastcgi_param  SCRIPT_FILENAME   /usr/local/nginx/html $fastcgi_script_name;
             include        fastcgi_params;
         }
     }
}

Web2访问测试:

wKiom1kK9SPwfAZnAAEhO1NZvDk055.jpg-wh_50

说明177web 已经支持php 可以正常使用访问。

动静分离访问进行测试

wKioL1kK9YPjqpPNAAF4HNF3HjA104.jpg-wh_50

 

访问nginx分发器 index.php(这个文件是177web2服务器上的),nginx分发器可以正常读取172 web2服务器的php 文件,说明读写分离已经成功。



本文转自 Innocence_caosm 51CTO博客,原文链接:http://blog.51cto.com/innocence/1795551,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
131 0
|
9月前
|
负载均衡 安全 前端开发
百度搜索:蓝易云【Nginx与Tomcat负载均衡-动静分离教程】
这些是将Nginx与Tomcat结合使用实现负载均衡和动静分离的基本步骤。根据您的需求和具体环境,可能还需要进行其他配置和调整。请确保在进行任何与网络连接和安全相关的操作之前,详细了解您的网络环境和安全需求,并采取适当的安全措施。
80 1
|
7月前
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
95 3
|
8月前
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
|
9月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
85 1
|
7月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
201 1
|
8月前
|
前端开发 Java 应用服务中间件
若依分离板nginx配置
若依分离板nginx配置
492 1
|
9月前
|
应用服务中间件 nginx
nginx指定location 实现反向代理 动静分离
nginx指定location 实现反向代理 动静分离
|
9月前
|
运维 前端开发 Java
Tomcat详解(八)——Tomcat与Nginx实现动静分离
Tomcat详解(八)——Tomcat与Nginx实现动静分离
80 6
|
9月前
|
负载均衡 JavaScript 前端开发
Nginx实现反向代理、负责均衡、动静分离
Nginx实现反向代理、负责均衡、动静分离