Nginx 读写分离详解
Nginx之读写分离
1.实验拓扑
需求分析,前端一台nginx做负载均衡反向代理,后面两台httpd服务器。整个架构是提供BBS(论坛)服务,有一需求得实现读写分离,就是上传附件的功能,我们上传的附件只能上传到Web1,然后在Web1上利用rsync+inotify实现附件同步,大家都知道rsync+inotify只能是主向从同步,不能双向同步。所以Web1可进行写操作,而Web2只能进行读操作,这就带来读写分离的需求,下面我们就来说一下,读写分离怎么实现。
2.WebDAV功能说明
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。这样我们就能配置读写分离功能了,下面我们来具体配置一下。
3.修改配置文件
location / {
proxy_pass http://192.168.18.202;
if ($request_method = "PUT"){
proxy_pass http://192.168.18.201;
}
}
4.重新加载一下配置文件
/usr/local/nginx/sbin/nginx -s reload
5.配置httpd的WebDAV功能
[root@web1 ~]# vim /etc/httpd/conf/httpd.conf
注,在<Directory "/var/www/html">下启用就行。
6.进行上传测试
[root@nginx ~]# curl -T /etc/issue http://192.168.18.202
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>405 Method Not Allowed</title>
</head><body>
<h1>Method Not Allowed</h1>
The requested method PUT is not allowed for the URL /issue.
<hr>
<address>Apache/2.2.15 (CentOS) Server at 192.168.18.202 Port 80</address>
</body></html>
注,我们上传文件到,web2上时,因为web2只读功能,所以没有开户WebDAV功能,所以显示是405 Method Not Allowed。
[root@nginx ~]# curl -T /etc/issue http://192.168.18.201
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
You don't have permission to access /issue
on this server.
<hr>
<address>Apache/2.2.15 (CentOS) Server at 192.168.18.201 Port 80</address>
</body></html>
注,我们在Web1开启了WebDAV功能,但我们目录是root目录是不允许apache用户上传的,所以显示的是403 Forbidden。下面我们给apache授权,允许上传。
[root@web1 ~]# setfacl -m u:apache:rwx /var/www/html/
下面我们再来测试一下,
[root@nginx ~]# curl -T /etc/issue http://192.168.18.201
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>201 Created</title>
</head><body>
<h1>Created</h1>
Resource /issue has been created.
<hr />
<address>Apache/2.2.15 (CentOS) Server at 192.168.18.201 Port 80</address>
</body></html>
注,大家可以看到我们成功的上传了文件,说明nginx读写分离功能配置完成。最后,我们来查看一下上传的文件。
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# ll
总用量 12
drwxr-xr-x 2 root root 4096 9月 4 13:16 forum
-rw-r--r-- 1 root root 23 9月 3 23:37 index.html
-rw-r--r-- 1 apache apache 47 9月 4 14:06 issue
转载于:https://blog.51cto.com/wushank/1678555
Nginx 读写分离详解相关推荐
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)
大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
标签:读写分离 页面缓存 URL重写 Nginx 反向代理 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeloda.bl ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解【转载】
本文只为备份,以防失效.原文请看https://blog.51cto.com/freeloda/1288553 补充说明:部分图片为测试图片,未完全复制,参考文字描述即可. Nginx 反向代理.负载 ...
- Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解
大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...
- 【数据库七】搭建MySQL主从复制和读写分离详解
详解搭建搭建MySQL主从复制和读写分离 1.案例实施:搭建MySQL主从复制 1.1 主节点数据库(CentOS 7-5) 1.2 从节点数据库(CentOS 7-6) 1.3 从节点数据库(Cen ...
- Nginx动静分离详解
Nginx动静分离基本概述 动静分离,通过中间件将动态请求和静态请求进行分离 那为什么要通过中间件将动态请求和静态请求进行分离?减少不必要的请求消耗,同时能减少请求的延时. Nginx动静分离场景实践 ...
- Sharding JDBC分片和读写分离详解
目录 Sharding Sphere简介 开始使用Sharding JDBC 数据分片 简单示例 Spring Boot示例 代码分析 属性分析 绑定表和广播表 真实表 绑定表 广播表 Shardin ...
- Nginx配置文件nginx.conf中文详解(转)
######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...
- nginx.conf配置详解
######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组 user www www;#nginx进程数,建议设置为等于CPU总核心数. worker_pr ...
- nginx.conf 配置文件详解
本文来说下nginx.conf 配置文件详解 文章目录 Nginx 配置文件概述 nginx.conf 配置文件 通用(这里是 windows 系统系 nginx1.14.2 下 nginx.conf ...
最新文章
- UI自动化测试中的页面定位问题,年薪50W软件测试工程师为你解答
- 面向对象程序设计上机练习一(函数重载)
- silverlight实现2D人物动画
- 深度学习笔记二:PAC,PAC白化,ZCA白化
- 【报告分享】2021年空巢青年研究报告:静水流深,不将就的青春.pdf(附下载链接)...
- 那桃林深处最美的风景
- 开机显示erro:file'/boot/grub/i386-pc/normal.mod' not解决
- 转(static final 和final的区别)
- 压缩JPG图片大小而且不失真
- 微信转发软件后缀_简单修改后缀让微信发送25M以上微信大视频
- 使用Senparc.Weixin SDK搭建微信公众号服务程序
- Python爬虫:爬了7天的斗鱼,我们来看一下主播们的真实现状
- 【阿里云】DCDN全站加速介绍及配置
- 一种能克服反光现象的围棋图谱可靠识别方法
- 力天创见客流分析功能需求
- 回顾2018年云计算九大亮点
- 洛谷P2327 [SCOI2005]扫雷 题解
- Android Studio Flavors详解
- 使用POI读取大量数据EXCEL文件,并解析成自定义javaBean
- TCP网络编程之chat聊天室
热门文章
- ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 2, 1
- dataframe数据按行做线性拟合
- python 输出函数表达式——LaTeX数学公式
- 数据结构:实验二 队列的基本功能实现
- 遥感软件envi5.31
- xml文档的pull解析与SAX解析
- listview 加载的时候报java.lang.IllegalArgumentException: column ‘_id’ does not exist 错误
- java同步和互斥程序说明(一)
- 异步处理老司机:IntentService 源码分析
- C++中this指针小记