首页 > 作文

Linux系统在nginx反向代理负载均衡

更新时间:2023-04-03 22:40:37 阅读: 评论:0

十、nginx反向代理负载均衡

(一)lnmp架构迁移数据库说明

迁移数据库:利用数据库备份命令(mysql mysqladmin mysqldump)

1) 备份数据库数据库信息

 mysqldump -uroot -poldboy123 --all-databas >/tmp/bak.sql ll /tmp/bak.sql -h scp /tmp/bak.sql 172.16.1.51:/tmp/

2) 恢复数据库数据库信

 ##db01  mysql -uroot -poldboy123 </tmp/bak.sql ###db01添加新的用户 grant all on wordpress.* to wordpress@'172.16.1.0/255.255.255.0' identified by 'oldboy123'; flush privileges; mysql -uwordpress -poldboy123 -h 172.16.1.51

3) 数据库迁移完毕,修改网站连接数据库的配置文件

mysql -uwordpress -poldboy123 -h 172.16.1.51       <-- 修改配置文件之前,先测试网站web服务器与迁移后的数据库连通性vim wp-config.p播音与主持培训hp                                  <-- 修改wordpress上的数据库连接参数信息/** mysql主机 */define('db_host','172.16.1.51')                    <-- 修改连接的主机信息,将localhost修改为172.16.1.51说明:web服务器数据库此时可以关闭了

4)停止nginx服务器上mysql服务

/etc/init.d/mysql stop

(二)lnmp架构数据迁移到nfs存储说明

01:先将原有目录中数据移出

 cd /application/nginx/html/blog/wp-content/uploads mkdir /tmp/wordpress_backup -p mv ./* /tmp/wordpress_backup/  数据存储到本地什么位置,获取方法 ①. 通过网站页面右键点击,获取资源地址信息 ②. find命令利用-mmin 5  ③. 利用inotify服务监控目录数据变化

02: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 mount -t nfs 172.16.1.31:/data/ ./uploads/ mv /tmp/wordpress_backup/* ./ 

(三)nginx反向代理负载均衡功能

客户端====代理服务器===web服务器客户端看到的服务端==代理服务器代理服务器====web服务器反向代理功能架构3台web服务器,组建出web服务器集群web01  10.0.0.7   172.16.1.7web02  10.0.0.8   172.16.1.8web03  10.0.0.9   172.16.1.91台负载均衡服务器lb01   10.0.0.5   172.16.1.5

①. 部署web服务器

第一个里程:安装部署nginx软件

mkdir /rver/tools -pcd /rver/toolswget http://nginx.org/download/nginx-1.12.2.tar.gztar xf nginx-1.12.2.tar.gzyum install -y pcre-devel openssl-develuradd -m -s /sbin/nologin wwwcd nginx-1.12.2./configure --prefix=/application/nginx-1.12.2 --ur=www --group=www --with-http_ssl_module --with-http_stub_status_modulemake && make installln -s /application/nginx-1.12.2 /application/nginx/application/nginx/sbin/nginxnetstat -lntup|grep nginx

第二个里程:编辑nginx配置文件

rver {    listen       80;    rver_name  www.etiantian.org;    root   html/www;    index  index.html index.htm;}rver {    listen       80;    rver_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} -pfor name in www bbs;do echo "$(hostn古代诗歌四首pptame) $name.etiantian.org" >/application/nginx/html/$name/oldboy.html;donefor name in www bbs;do cat /application/nginx/html/$name/oldboy.html;done   

第四里程:在负载均衡服务器上,进行测试访问

 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 /rver/tools -pcd /rver/toolswget http://nginx.org/download/nginx-1.12.2.tar.gztar xf nginx-1.12.2.tar.gzyum install -y pcre-devel openssl-develuradd -m -s /sbin/nologin wwwcd nginx-1.12.2./configure --prefix=/application/nginx-1.12.2 --ur=www --group=www --with-http_ssl_module --with-http_stub_status_modulemake && make installln -s /application/nginx-1.12.2 /application/nginx/application/nginx/sbin/nginxnetstat -lntup|grep nginx

第二个里程:编写nginx反向代理配置文件

grep -ev "#|^$" nginx.conf.default >nginx.conf官方链接:/d/file/titlepic/ngx_http_upstream_module.html name { ... }default:—context:httpeg:upstream oldboy {   rver 10.0.0.7:80;   rver 10.0.0.8:80;   rver 10.0.0.9:80;}说明:upstream模块就类似定一个一个地址池或者说定一个web服务器组官方链接:/d/file/titlepic/ngx_http_proxy_module.html url; default:— context:location, if in location, limit_excepteg:location / {   proxy_pass http://oldboy;} 说明:proxy_pass主要用于进行抛送用户访问请求给upstream模块中的相应节点服务器worker_process  1; events {     worker_connections  1024; } http {     include       mime.types;     default_type  application/octet-stream;     ndfile        on;     keepalive_timeout  65;     upstream oldboy {         rver 10.0.0.7:80;         rver 10.0.0.8:80;         rver 10.0.0.9:80;     }     rver {         listen       80;         rver_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解析   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

(四)nginx反向代理负载均衡模块功能详述

ngx_http_upstream_modulehttp://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream

①模块常用功能说明:

1)定义2017年流行服装搭配技巧后端集群web节点信息,定义一个地址的池子

upstream oldboy {rver 10.0.0.7:80;rver 10.0.0.8:8赞誉有加0;rver 10.0.0.9:80;}

2)实现权重值负载访问功能

upstream oldboy {rver 10.0.0.7:80 weight=3;rver 10.0.0.8:80 weight=1;rver 10.0.0.9:80 weight=1;}

3)定义后端访问的失败次数-max_fails

upstream oldboy {rver 10.0.0.7:80 weight=3 max_fails=3;rver 10.0.0.8:80 weight=1 max_fails=3;rver 10.0.0.9:80 weight=1 max_fails=3;}

4)定义后端失败重试的间隔-fail_timeout

upstream oldboy {rver 10.0.0.7:80 weight=3 max_fails=3 fail_timeout=10s;rver 10.0.0.8:80 weight=1 max_fails=3;rver 10.0.0.9:80 weight=1 max_fails=3;}说明:在尝试多次失败后,在超时时间过去之后,会再给相应节点一次机会

5)定义后端服务的热备节点-backup

upstream oldboy {rver 10.0.0.7:80;rver 10.0.0.8:80;rver 10.0.0.9:80 backup;}

②模块常用调度算法:

1)定义轮询调度算法-rr-默认调度算法采取平均分配2)定义权重调度算法-wrr能者多劳3)定义静态调度算法-ip_hashupstream oldboy {ip_hash;rver 10.0.0.7:80;rver 10.0.0.8:80;rver 10.0.0.9:80 backup;}说明:配置ip_hash时,一定不能和backup与weight参数同时出现4)定义最小的连接数-least_connupstream oldboy {least_conn;rver 10.0.0.7:80;rver 10.0.0.8:80;rver 10.0.0.9:80 backup;}

③模块常用功能(ngx_http_proxy_module)

proxy_t_header --- 设置反向代理服务器到web服务器的http请求报文中的头部信息rver {listen       80;rver_name  www.etiantian.org;root   html;忘不了施文斌index  index.html index.htm;location / {proxy_pass http://oldboy;proxy_t_header host $host;}}rver {listen       80;rver_name  bbs.etiantian.org;proxy_t_header host $host;root   html;index  index.html index.htm;location / {proxy_pass http://oldboy;proxy_t_header host $host;}}说明:通过以上配置,可以实现访问负载均衡看到不同虚拟主机页面信息(oldboy,相当于使用ip地址访问虚拟主机,默认访问的是第一个rver)rver {listen       80;rver_name  www.etiantian.org;root   html;index  index.html index.htm;location / {proxy_pass http://oldboy;proxy_t_header host $host;proxy_t_header x-forwarded-for $remote_addr;} }rver {listen       80;rver_name  bbs.etiantian.org;root   html;index  index.html index.htm;location / {proxy_pass http://oldboy;proxy_t_header x-forwarded-for $remote_addr;} }说明:实现用户访问反向代理服务,让web服务器日志中记录真实用户ip地址信息

(五)案例:

先进行企业案例需求梳理:当用户请求www.etiantian.org/upload/xx 地址时,实现由upload上传服务器池处理请求。当用户请求www.etiantian.org/static/xx 地址时,实现由静态服务器池处理请求。除此以外,对于其他访问请求,全都由默认的动态服务器池处理请求。    用户请求(uri)  处理请求服务器  站点目录         功能    /upload           10.0.0.8:80     html/www/upload upload服务器    /static           10.0.0.7:80     html/www/static static静态服务器    /               10.0.0.9:80     html/www         默认

解题方法:

1)完成nginx网站服务器配置

第一个里程:创建测试环境

# 10.0.0.8 主机上创建upload目录,然后生成网站测试页面文件cd /application/nginx/html/www/mkdir uploadcp oldboy.html upload/# 10.0.0.7 主机上创建static目录,然后生成网站测试页面文件cd /application/nginx/html/www/mkdir staticcp oldboy.html static/# 10.0.0.9 主机上创建默认测试页面文件即可

第二个里程:利用lb01进行访问测试

# 测试10.0.0.8访问是否正常curl -h host:www.etiantian.org 10.0.0.8/upload/oldboy.htmlweb02 www.etiantian.org# 测试10.0.0.7访问是否正常curl -h host:www.etiantian.org 10.0.0.7/static/oldboy.htmlweb01 www.etiantian.org# 测试10.0.0.9访问是否正常curl -h host:www.etiantian.org 10.0.0.9/oldboy.htmlweb03 www.etiantian.org

2)完成nginx反向代理服务器配置

第一个里程:配置upstream模块信息

upstream upload {rver 10.0.0.8:80;}upstream static {rver 10.0.0.7:80;}upstream default {rver 10.0.0.9:80;}   

第二个里程:配置proxy_pass模块信息

rver {listen       80;rver_name  www.etiantian.org;root   html; index  index.html index.htm;location / {proxy_pass http://default;proxy_t_header host $host;proxy_t_header x-forwarded-for $remote_addr;}location /upload {proxy_pass http://upload;proxy_t_header host $host;proxy_t_header x-forwarded-for $remote_addr;}location /static {proxy_pass http://static;proxy_t_header host $host;proxy_t_header x-forwarded-for $remote_addr;}}

例题2:

根据用户请求客户端软件,显示不同页面信息

解决方法:
1)nginx网站服务器配置
第一个里程:创建测试环境

# 10.0.0.8 主机上创建upload目录,然后生成网站测试页面文件cd /application/nginx/html/www/cat oldboy.html# 10.0.0.7 主机上创建static目录,然后生成网站测试页面文件cd /application/nginx/html/www/cat oldboy.html # 10.0.0.9 主机上创建默认测试页面文件即可cd /application/nginx/html/www/cat oldboy.html 测试访问:[root@lb01 conf]# curl -h host:www.etiantian.org 10.0.0.7/oldboy.htmlweb01 www.etiantian.org[root@lb01 conf]# curl -h host:www.etiantian.org 10.0.0.8/oldboy.htmlweb02 www.etiantian.org[root@lb01 conf]# curl -h host:www.etiantian.org 10.0.0.9/oldboy.htmlweb03 www.etiantian.org

2)nginx反向代理服务器配置

第一个里程:配置upstream模块信息

upstream iphone {rver 10.0.0.8:80;}upstream android {rver 10.0.0.7:80;}upstream pc {rver 10.0.0.9:80;}   

第二个里程:配置proxy_pass模块信息

rver {listen       80;rver_name  www.etiantian.org;root   html;index  index.html index.htm;location / {if ($http_ur_agent ~* "iphone") {proxy_pass http://iphone;}if ($http_ur_agent ~* "android") {proxy_pass http://android;}proxy_pass http://pc;proxy_t_header host $host;proxy_t_header x-forwarded-for $remote_addr;}}
转自:/d/file/titlepic/12820345.html 
        

本文发布于:2023-04-03 22:40:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/6b480495b0303598c1015adec12bf86e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Linux系统在nginx反向代理负载均衡.doc

本文 PDF 下载地址:Linux系统在nginx反向代理负载均衡.pdf

下一篇:返回列表
标签:里程   服务器   测试   第一个
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图