一、环境准备

反向代理功能架构
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服务和负载均衡服务

1. 安装部署nginx

在三台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

2. 编辑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;
}
#将配置文件分发到其他两台web服务器
scp -rp /application/nginx/conf/nginx.conf 172.16.1.8:/application/nginx/conf/
scp -rp /application/nginx/conf/nginx.conf 172.16.1.8:/application/nginx/conf/

3. 在三台web服务器上创建模拟测试环境

mkdir /application/nginx/html/{www,bbs} -p
for name in www bbs;do echo "$(hostname) $name.etiantian.org" >/application/nginx/html/$name/test.html;done
for name in www bbs;do cat /application/nginx/html/$name/test.html;done

4. 在负载均衡服务器上,进行测试访问

curl -H host:www.etiantian.org 10.0.0.7/test.html
web01 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.7/test.html
web01 bbs.etiantian.org
curl -H host:www.etiantian.org 10.0.0.8/test.html
web02 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.8/test.html
web02 bbs.etiantian.org
curl -H host:www.etiantian.org 10.0.0.9/test.html
web03 www.etiantian.org
curl -H host:bbs.etiantian.org 10.0.0.9/test.html
web03 bbs.etiantian.org

5. 在负载均衡lb01服务器上编写nginx反向代理配置文件

01. 简化配置文件

cd /application/nginx/conf/

grep -Ev "#|^$" nginx.conf.default >nginx.conf

  

02. 在nginx.conf中编写upstream和proxy_pass模块

说明:upstream模块就类似定一个一个地址池或者说定一个web服务器组

官方链接:http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream

语法:

Syntax:    upstream name { ... }
Default: —
Context: http

eg:

#添加web服务器节点
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}

说明:proxy_pass主要用于进行抛送用户访问请求给upstream模块中的相应节点服务器

官方文档: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://test;
}

eg:

worker_processes  1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream test {
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://test;
}
}
}

编写完后重启nginx服务

/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx -s reload

6. 进行访问负载均衡服务器测试

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/test.html
web01 www.etiantian.org
[root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/test.html
web02 www.etiantian.org
[root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/test.html
web03 www.etiantian.org

linux篇—Nginx反向代理负载均衡的更多相关文章

  1. Linux 下 Nginx 反向代理 负载均衡配置

    转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52036350 上一篇分享了 Nginx + JDK + Tomcat + MySQ ...

  2. linux (09) nginx反向代理,负载均衡

    一.nginx域名分配 1.创建一个新的服务器 server server{ listen 80; server_name www.s15oumei.com; #定义访问域名 location / { ...

  3. Linux下nginx反向代理负载均衡几种方式以及配置

    下面以ip地址192.168.1.1 和192.168.1.2举例 1.轮询   (1).轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.  upstream ...

  4. Nginx 反向代理 负载均衡 虚拟主机配置

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  5. Nginx 反向代理 负载均衡 虚拟主机

    Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...

  6. 十.nginx反向代理负载均衡服务实践部署

    期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...

  7. 【转】Nginx 反向代理 负载均衡 虚拟主机配置

    原文:http://www.cnblogs.com/itdragon/p/8059000.html Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代 ...

  8. Centos7.4 Nginx反向代理+负载均衡配置

    Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65 ...

  9. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

随机推荐

  1. 演示Git使用

    对于新建的repository,第一次提交,完整过程: 13643@DESKTOP-K6CS6SE MINGW64 ~/Desktop/555 $ ls Readme.md run.py 13643@ ...

  2. 数组与List互转的坑

    一.数组转List 非原始类型的数组转List有很多种方式:假设有Integer[] arr = {"a", "b", "c"}; 1.Li ...

  3. php prev()函数 语法

    php prev()函数 语法 作用:将内部指针指向数组中的上一个元素,并输出.直线电机选型 语法:prev(array) 参数: 参数 描述 array 必需.指定需要操作的数组. 说明:如果数组包 ...

  4. 洛谷 P4300 BZOJ 1266 [AHOI2006]上学路线route

    题目描述 可可和卡卡家住合肥市的东郊,每天上学他们都要转车多次才能到达市区西端的学校.直到有一天他们两人参加了学校的信息学奥林匹克竞赛小组才发现每天上学的乘车路线不一定是最优的. 可可:“很可能我们在 ...

  5. 计算一段日期内的周末天数的php代码(星期六,星期日总和)

    代码如下: /*| Author: Yang Yu <niceses@gmail.com>| @param char|int $start_date 一个有效的日期格式,例如:200910 ...

  6. Linux 系统下文件夹与文件的读写可执行权限问题

    linux是一个多用户操作系统,linux对文件系统内的所有文件,实行了严格的权限划分管理.防止没有权限的用户访问某个文件.linux文件或目录的权限分为 读.写.可执行三种权限.文件访问的用户类别分 ...

  7. CF 1182F Maximum Sine——根号算法

    题目:http://codeforces.com/contest/1182/problem/F 注意有绝对值. 那么就是 k*p 对 q 取模,找最接近 \(\frac{q}{2}\) 的结果. 也就 ...

  8. [CSP-S模拟测试]:降雷皇(DP+树状数组)

    题目描述 降雷皇哈蒙很喜欢雷电,他想找到神奇的电光.哈蒙有$n$条导线排成一排,每条导线有一个电阻值,神奇的电光只能从一根导线传到电阻比它大的上面,而且必须从左边向右传导,当然导线不必是连续的.哈蒙想 ...

  9. select选项

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. RabbitMq(7)消息延时推送

    应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持 ...