一、环境准备

反向代理功能架构
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

  1. mkdir /server/tools -p
  2. cd /server/tools
  3. wget http://nginx.org/download/nginx-1.12.2.tar.gz
  4. tar xf nginx-1.12.2.tar.gz
  5. yum install -y pcre-devel openssl-devel
  6. useradd -M -s /sbin/nologin www
  7. cd nginx-1.12.2
  8. ./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
  9. make && make install
  10. ln -s /application/nginx-1.12.2 /application/nginx
  11. /application/nginx/sbin/nginx
  12. netstat -lntup|grep nginx

2. 编辑nginx配置文件

  1. server {
  2. listen 80;
  3. server_name www.etiantian.org;
  4. root html/www;
  5. index index.html index.htm;
  6. }
  7. server {
  8. listen 80;
  9. server_name bbs.etiantian.org;
  10. root html/bbs;
  11. index index.html index.htm;
  12. }
    #将配置文件分发到其他两台web服务器
  13. scp -rp /application/nginx/conf/nginx.conf 172.16.1.8:/application/nginx/conf/
  14. scp -rp /application/nginx/conf/nginx.conf 172.16.1.8:/application/nginx/conf/

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

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

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

  1. curl -H host:www.etiantian.org 10.0.0.7/test.html
  2. web01 www.etiantian.org
  3. curl -H host:bbs.etiantian.org 10.0.0.7/test.html
  4. web01 bbs.etiantian.org
  5. curl -H host:www.etiantian.org 10.0.0.8/test.html
  6. web02 www.etiantian.org
  7. curl -H host:bbs.etiantian.org 10.0.0.8/test.html
  8. web02 bbs.etiantian.org
  9. curl -H host:www.etiantian.org 10.0.0.9/test.html
  10. web03 www.etiantian.org
  11. curl -H host:bbs.etiantian.org 10.0.0.9/test.html
  12. web03 bbs.etiantian.org

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

01. 简化配置文件

  1. cd /application/nginx/conf/
  2.  
  3. 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

语法:

  1. Syntax: upstream name { ... }
  2. Default:
  3. Context: http

eg:

  1. #添加web服务器节点
    upstream oldboy {
  2. server 10.0.0.7:80;
  3. server 10.0.0.8:80;
  4. server 10.0.0.9:80;
  5. }

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

官方文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

  1. Syntax: proxy_pass URL;
  2. Default:
  3. Context: location, if in location, limit_except
  4. eg
  5. location / {
  6. proxy_pass http://test;
  7. }

eg:

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. upstream test {
  11. server 10.0.0.7:80;
  12. server 10.0.0.8:80;
  13. server 10.0.0.9:80;
  14. }
  15. server {
  16. listen 80;
  17. server_name localhost;
  18. root html;
  19. index index.html index.htm;
  20. location / {
  21. proxy_pass http://test;
  22. }
  23. }
  24. }

编写完后重启nginx服务

  1. /application/nginx/sbin/nginx -t
  2. /application/nginx/sbin/nginx -s reload

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

  1. 1)利用浏览器进行测试
  2. 进行hosts解析
  3. http://www.etiantian.org/oldboy.html <--利用ctrl+F5刷新测试,检查是否进行负载调度
  4. 2)利用curl命令进行测试
  5. [root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/test.html
  6. web01 www.etiantian.org
  7. [root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/test.html
  8. web02 www.etiantian.org
  9. [root@lb01 conf]# curl -H host:www.etiantian.org 10.0.0.5/test.html
  10. 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. 【leetcode】394. Decode String

    题目如下: 解题思路:这种题目和四则运算,去括号的题目很类似.解法也差不多. 代码如下: class Solution(object): def decodeString(self, s): &quo ...

  2. Java浏览器弹出下载框,多个文件导出压缩包

    项目里一直有这个功能,也一直没怎么注意,今天研究了一下 依据逻辑往下走: 首先是要下载的ajax的Java方法,只有返回值需要设定一下,其他的不用管: Map<String, Object> ...

  3. python中sort与sorted区别

    1.sort()函数 (只对list有用) sort(...) L.sort(key = None,reverse=False) key = 函数 这个函数会从每个元素中提取一个用于比较的关键字.默认 ...

  4. Spark在MaxCompute的运行方式

    一.Spark系统概述 左侧是原生Spark的架构图,右边Spark on MaxCompute运行在阿里云自研的Cupid的平台之上,该平台可以原生支持开源社区Yarn所支持的计算框架,如Spark ...

  5. selenium 浏览器无界面模式运行

    以Chrome浏览器为例: 方法一: from selenium.webdriver import Chrome, ChromeOptions opt = ChromeOptions() # 创建Ch ...

  6. 相同name,取最小的id的值,mysql根据相同字段 更新其它字段

    id name info1 a 1232 a 2353 a 1244 b 125 b 987相同name,取最小的id的值id name info1 a 1232 a 1233 a 1234 b 12 ...

  7. 穿戴-智能穿戴-ProjectGlass:谷歌眼镜(Google Project Glass)

    ylbtech-穿戴-智能穿戴-ProjectGlass:谷歌眼镜(Google Project Glass) 谷歌眼镜(Google Project Glass)是由谷歌公司于2012年4月发布的一 ...

  8. ajax跨域处理 No 'Access-Control-Allow-Origin' header is present on the requested resource 问题

    Controller层的类上增加@CrossOrign注解,当前文件的所有接口就都可以被调用 spring注解@CrossOrigin不起作用的原因 1.是springMVC的版本要在4.2或以上版本 ...

  9. Centos7配置定时重启服务器

    Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序. 用 service crond status 查看 crond服务状态,如果没有启动则 systemctl s ...

  10. 大数据学习笔记之Zookeeper(三):Zookeeper理论篇(二)

    文章目录 3.1 数据结构 3.2 节点类型 3.3 特点 3.4 选举机制 3.5 stat结构体 3.6 监听器原理 3.1 数据结构 ZooKeeper数据模型的结构与Unix文件系统很类似,整 ...