十.nginx反向代理负载均衡服务实践部署
期中集群架构-第十章-nginx反向代理负载均衡章节章节
======================================================================
01. LNMP架构迁移数据库说明
02. LNMP架构数据迁移到NFS存储说明
03. nginx反向代理负载均衡功能
01. LNMP架构迁移数据库说明
迁移数据库:利用数据库备份命令(mysql mysqladmin mysqldump)
1) 备份数据库数据库信息
mysqldump命令要全路径或者把命令链接到/usr/bin下
ln -s /application/mysql/bin/mysqldump /usr/bin
mysqldump -uroot -poldboy123 --all-databases >/tmp/bak.sql
ll /tmp/bak.sql -h 检查文件
-rw-r--r-- 1 root root 1.2M May 20 21:54 /tmp/bak.sql
scp /tmp/bak.sql 172.16.1.51:/tmp/ 备份到MySQL服务器
2) 恢复数据库数据库信息
##db01
mysql -uroot -poldboy123 </tmp/bak.sql
登陆数据库查看恢复,WordPress已恢复

测试web01的网站数据远程连接到db01上
报错不允许连接
查看哪些用户可以连接到数据库 SQL语句 select user,host from mysql.user;
显示wordpress 用户只能以本地方式连接

###db01添加新的用户
允许那个网段可以连接我设置好密码
grant all on wordpress.* to wordpress@'172.16.1.0/255.255.255.0' identified by 'oldboy123';

测试web01连接它没问题了,数据迁移完毕

flush privileges;刷新权限语句
3) 数据库迁移完毕,修改网站连接数据库的配置文件
mysql -uwordpress -poldboy123 -h 172.16.1.51 <-- 修改配置文件之前,先测试网站web服务器与迁移后的数据库连通性
vim wp-config.php <-- 修改wordpress上的数据库连接参数信息
进入站点目录bolg ---cd /application/nginx/html/blog/
修改wp-config.php文件,这里设置的是localhost本地主机
修改为我们创建的MySQL数据库服务器地址172.16.1.51


/** MySQL主机 */
define('DB_HOST','172.16.1.51') <-- 修改连接的主机信息,将localhost修改为172.16.1.51
说明:web服务器数据库此时可以关闭了
4)停止nginx服务器上MySQL服务
/etc/init.d/mysql stop
02. LNMP架构数据迁移到NFS存储说明
01:先将原有目录中数据移出
右键网站中的图片看到他在站点目录中的存储位置,blog.etiantian.org/wp-content/uploads/2018/05/
进入此目录,在/tmp/下创建备份目录 把uploads下所有文件迁移过去
cd /application/nginx/html/blog/wp-content/uploads
mkdir /tmp/wordpress_backup -p
mv ./* /tmp/wordpress_backup/
数据存储到本地什么位置,获取方法
①. 通过网站页面右键点击,获取资源地址信息
②. find命令利用-mmin 5
③. 利用inotify服务监控目录数据变化
02:NFS服务器上配置创建共享目录
nfs服务之前已经部署好了
vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
showmount -e 172.16.1.31

mount -t nfs 172.16.1.31:/data /mnt/
====================================================================
showmount -e 172.16.1.31
把nfs共享目录挂载到uploads下,在把数据移动过去此时相当于移动到了nfs下的data共享目录
此时站点的数据就存储到了nfs存储服务器上了,存储服务器上的数据会再次备份到备份服务器上
mount -t nfs 172.16.1.31:/data/ ./uploads/
mv /tmp/wordpress_backup/* ./
03. nginx反向代理负载均衡功能



客户端====代理服务器===web服务器
客户端看到的服务端==代理服务器
代理服务器====web服务器
客户端和web服务器是没有什么关系的
反向代理功能架构
3台web服务器,组建出web服务器集群
web01 10.0.0.7 172.16.1.7
web02 10.0.0.8 172.16.1.8
web03 10.0.0.9 172.16.1.9
1台负载均衡服务器
lb01 10.0.0.5 172.16.1.5
①. 部署web服务器
第一个里程:安装部署nginx软件
mkdir /server/tools -p
cd /server/tools
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar xf nginx-1.12.2.tar.gz
yum install -y pcre-devel openssl-devel
useradd -M -s /sbin/nologin www
cd nginx-1.12.2
./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
make && make install
ln -s /application/nginx-1.12.2 /application/nginx
/application/nginx/sbin/nginx
netstat -lntup|grep nginx
第二个里程:编辑nginx配置文件
server {
listen 80;
server_name www.etiantian.org;
root html/www;
index index.html index.htm;
}
server {
listen 80;
server_name bbs.etiantian.org;
root html/bbs;
index index.html index.htm;
}
scp -rp /application/nginx/conf/nginx.conf 172.16.1.8:/application/nginx/conf/
scp -rp /application/nginx/conf/nginx.conf 172.16.1.9:/application/nginx/conf/
第三里程:创建模拟测试环境
mkdir /application/nginx/html/{www,bbs} -p
for name in www bbs;do echo "$(hostname) $name.etiantian.org" >/application/nginx/html/$name/oldboy.html;done
for name in www bbs;do cat /application/nginx/html/$name/oldboy.html;done
第四里程:在负载均衡服务器上,进行测试访问
-H host:****** 10.0.0.7/oldboy.html
curl -H host:www.etiantian.org 10.0.0.7/oldboy.html
web01 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.7/oldboy.html
web01 bbs.etiantian.org
curl -H host:www.etiantian.org 10.0.0.8/oldboy.html
web02 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.8/oldboy.html
web02 bbs.etiantian.org
curl -H host:www.etiantian.org 10.0.0.9/oldboy.html
web03 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.9/oldboy.html
web03 bbs.etiantian.org
②. 部署负载均衡服务器






第一个里程:安装部署nginx软件
mkdir /server/tools -p
cd /server/tools
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar xf nginx-1.12.2.tar.gz
yum install -y pcre-devel openssl-devel
useradd -M -s /sbin/nologin www
cd nginx-1.12.2
./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
make && make install
ln -s /application/nginx-1.12.2 /application/nginx
/application/nginx/sbin/nginx
netstat -lntup|grep nginx
第二个里程:编写nginx反向代理配置文件
cd /application/nginx/conf/
egrep -v "#|^$" nginx.conf.default >nginx.conf
或grep -Ev "#|^$" nginx.conf.default >nginx.conf
upstream模块
官方链接:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream
官方模块 指令说明
Syntax: upstream name { ... }
Default: —
Context: http ---只能配置到hhtp 区块
eg:
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
说明:upstream模块就类似定一个一个地址池或者说定一个web服务器组
组里面的属于成员
proxy_pass模块
官方链接:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
Syntax: proxy_pass URL;
Default: —
Context: location, if in location, limit_except --可以配置的区块
eg:
location / {
proxy_pass http://oldboy; 指定调度的集群组名oldboy
}
说明:proxy_pass主要用于进行抛送用户访问请求给upstream模块中的相应节点服务器
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name localhost;
root html;
index index.html index.htm;
location / {
proxy_pass http://oldboy;
}
}
}
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx -s reload
第三个里程:进行访问负载均衡服务器测试
1)利用浏览器进行测试
进行hosts解析 地址不能是web地址 应该是负载服务器地址10.0.0.5
10.0.0.5 www.etiantian.org bbs.etiantian.org blog.etiantian.org
http://www.etiantian.org/oldboy.html <--利用ctrl+F5刷新测试,检查是否进行负载调度
2)利用curl命令进行测试
[root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web01 www.etiantian.org
[root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web02 www.etiantian.org
[root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web03 www.etiantian.org
04.Nginx反向代理负载均衡模块功能详述
upstream模块 ngx_http_upstream_module
模块常用功能说明:
1)定义后端集群web节点信息,定义一个地址的池子
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
2)实现权重值负载访问功能-weight 性能好的可以多分配权重
测试结果权重值高的访问中web1几率更高
upstream oldboy {
server 10.0.0.7:80 weight=3;
server 10.0.0.8:80 weight=1;
server 10.0.0.9:80 weight=1;
}
3)定义后端访问的失败次数-max_fails 超过次数就不予以分配
不赋值默认为1次,设置结果为超过三次就交由下一个web服务器以此类推
upstream oldboy {
server 10.0.0.7:80 weight=3 max_fails=3;
server 10.0.0.8:80 weight=1 max_fails=3;
server 10.0.0.9:80 weight=1 max_fails=3;
}
4)定义后端失败重试的间隔-fail_timeout 超过三次不分配交由其他web过超时时间后再次尝试
upstream oldboy {
server 10.0.0.7:80 weight=3 max_fails=3 tail_timeout=10s;
server 10.0.0.8:80 weight=1 max_fails=3 tail_timeout=10s;
server 10.0.0.9:80 weight=1 max_fails=3 tail_timeout=10s;
}
5)定义后端服务的热备节点-backup(负载节点服务器都挂了,使用备份)
只要7和8不出现问题就不会启用9
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 backup;
}
模块调度算法:
1)定义轮询调度算法-rr-默认调度算法
后端有多少个节点 采取平均分配
2)定义权重调度算法-wrr
能者多劳
3)定义静态调度算法-ip_hash
用户在访问时的IP地址通过ip_hash算法生成hash值分配给web服务器,
下次在访问时对比值分配给相同的服务器 提升用户的体验
upstream oldboy {
ip_hash;
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
说明:配置ip_hash,一定不能和backup与weight参数同时出现
4)定义最小的连接数-least_conn 谁的连接数小就尽可能的多分配
upstream oldboy {
least_conn;
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 backup;
}
proxy 模块 ngx_http_proxy_module
proxy_set_header ---设置反向代理服务器到web服务器的http请求报文中的头部信息
bbs.etiantian.org/oldboy.html
本地主机在向代理服务器请求时头部是bbs.etiantian.org 代理服务器向web服务器请求时
变为了www.etiantian.org 这时需要设置proxy_set_header模块指点头部信息为本地$host请求信息

通过查看web服务器的日志信息显示访问的用户全是代理服务器的地址,不能真实的呈现来访的信息
tail /application/nginx/logs/access.log
说明:实现用户访问反向代理服务,让web服务器日志中记录真实用户的ip地址信息

十.nginx反向代理负载均衡服务实践部署的更多相关文章
- Nginx 反向代理 负载均衡 虚拟主机配置
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- Nginx 反向代理 负载均衡 虚拟主机
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- 【转】Nginx 反向代理 负载均衡 虚拟主机配置
原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...
- Centos7.4 Nginx反向代理+负载均衡配置
Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...
- 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器
Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...
- 项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现
实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备注 nginx VIP:172.17.11.11 反向代理服务器 开启代理功能 设置监控,调度 rs01 RIP ...
- 项目实战2.1—nginx 反向代理负载均衡、动静分离和缓存的实现
总项目流程图,详见 http://www.cnblogs.com/along21/p/8000812.html 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备 ...
- 项目实战02:nginx 反向代理负载均衡、动静分离和缓存的实现
目录 实验一:实现反向代理负载均衡且动静分离 1.环境准备: 2.下载编译安装tengine 3.设置代理服务器的配置文件 4.启动tengine服务 5.开启后端的web服务 6.测试 实验二:ng ...
- Centos 7.6配置nginx反向代理负载均衡集群
一,实验介绍 利用三台centos7虚拟机搭建简单的nginx反向代理负载集群, 三台虚拟机地址及功能介绍 192.168.2.76 nginx负载均衡器 192.168.2.82 web ...
随机推荐
- Kubernetes的本质
在前面的四篇文章中,我以 Docker 项目为例,一步步剖析了 Linux 容器的具体实现方式.通过这 些讲解你应该能够明白:一个“容器”,实际上是一个由 Linux Namespace.Linux ...
- 部署个人wordpress 笔记
yum list installed | grep php #检查当前安装的PHP包yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 ... ...
- dubbo 使用zookeeper 出现 Dubbo客户端调用报错NullPointerException
现在将网上的方法总结一下 方法一:.https://blog.csdn.net/u011294519/article/details/81810631 dubbo-provider.xml:提供者先扫 ...
- sqlite 数据库 boolean类型的小小测试
根据官方文档的介绍: SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored ...
- 一种特殊的 jpg 图片: MagickProfileImage() sRGB.icc
原图,在 ps, 浏览器中显示这样: 在 ps 中另存为 web... [转换成 sRGB]选项没有勾选: 在 ps 中另存为 web... 勾选[转换成 sRGB]选项: 用 ImageMaigck ...
- idea中的一些快捷键,未完待续......
1.快速查看注释的渲染效果 在keymap中查找“Quick Documentation”并设置自己喜欢的快捷键即可 2.全局搜索 在keymap中查找“Replace in Path”并设置自己喜欢 ...
- Entity Framework入门教程(6)--- 在线场景中保存数据
在线场景中保存数据 在线场景中保存实体数据是一项相当容易的任务,因为使用的是同一个context,这个context会自动跟踪所有实体发生的更改. 下图说明了在线场景中的CUD(创建,更新,删除)操作 ...
- 第九节:从源码的角度分析MVC中的一些特性及其用法
一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出. 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集 ...
- $\be$-QGE 的弱强唯一性
在 [Zhao, Jihong; Liu, Qiao. Weak-strong uniqueness criterion for the $\beta$-generalized surface qua ...
- [物理学与PDEs]第1章第9节 Darwin 模型 9.1 拟静电模型及其修正形式
1. 拟静电模型: 当 $\cfrac{\omega}{c}\ll \cfrac{1}{c}\lra \omega\ll \cfrac{c}{l}$ 时, $$\bex \cfrac{1}{c}\cf ...