nginx负载均衡与反向代理
1.集群的特点
(1)高性能
(2)价格有效性
(3)可伸缩性
(4)高可用性
(5)透明性
2.负载均衡概述
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
3.构建集群环境
三台web服务器配置一模一样
3.1web01
vim /etc/nginx/conf.d/proxy.conf
server{
listen 80;
server_name www.shuai.com; location / {
root /www/;
index index.html;
}
}
3.2web02
vim /etc/nginx/conf.d/proxy.conf
server{
listen 80;
server_name www.shuai.com; location / {
root /www/;
index index.html;
}
}
3.3web03
vim /etc/nginx/conf.d/proxy.conf
server{
listen 80;
server_name www.shuai.com; location / {
root /www/;
index index.html;
}
}
3.4测试

4.负载均衡环境搭建
vim /etc/nginx/conf.d/proxy.conf
upstream shuai {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name www.shuai.com;
location / {
proxy_pass http://shuai;
proxy_set_header HOST $host;
}
}


4.1负载均衡模块详细说明
ngx_http_upstream_module
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream
4.1.1轮训分配请求(平均)
默认配置
4.1.2weight=number权重分配请求
upstream oldboy {
server 10.0.0.7:80 weight=3;
server 10.0.0.8:80 weight=2;
server 10.0.0.9:80 weight=1;
}
4.1.3backup`实现热备功能(将服务器标记为备份服务器。当主服务器不可用时,将传递请求。)
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 backup;
}
4.1.4max_fails=number定义最大失败次数(用于监控检测)
upstream oldboy {
server 10.0.0.7:80 max_fails=5;
server 10.0.0.8:80 max_fails=5;
server 10.0.0.9:80 max_fails=5;
}
4.1.5fail_timeout=time定义失败之后重发的间隔时间(用于监控检测)
upstream oldboy {
server 10.0.0.7:80 fail_timeout=10s;
server 10.0.0.8:80 fail_timeout=10s;
server 10.0.0.9:80 fail_timeout=10s;
}
4.2反向代理模块详细说明
更过模块参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
ngx_http_proxy_module
4.2.1proxy_set_heard负载均衡到后端web服务器无法显示页面
location / {
proxy_pass http://shuai;
proxy_set_header HOST $host;
}
4.2.2在access日志中显示源IP,而不是负载均衡IP
location / {
proxy_pass http://shuai;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_next_upstream error timeout http_404 http_502;
}
4.2.3proxy_next_upstream如果后端web出现错误页面,则跳过访问,将正确的页面显示给客户端。
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
location / {
proxy_pass http://shuai;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_next_upstream error timeout http_404 http_502;
}
nginx负载均衡与反向代理的更多相关文章
- 【架构师之路】Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用 ...
- Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如http://www.XX.com的方式访问,在请求时,浏览器首先会查询DNS服务 ...
- Nginx 负载均衡和反向代理实践
nginx 以哪个配置文件启动 Nginx 负载均衡和反向代理实践 环境介绍 192.168.1.50 在这台主机上配置Nginx 的反向代理,负载均衡,和web1,web1使用的81号端口 1 ...
- CentOS中实现Nginx负载均衡和反向代理
一.安装必要软件 负载均衡服务器:IP设置为192.168.1.10 Web服务器1:安装Apache或者Nginx,IP设置为192.168.1.11: Web服务器2:安装Apache或者Ngin ...
- nginx负载均衡和反向代理有什么区别
近在研究nginx的负载均衡和反向代理,先看下这两个简单的配置吧! 负载均衡 worker_processes 1; events { worker_connections 1024; } http{ ...
- Nginx负载均衡和反向代理设置
Nginx负载均衡: 格式: upstream 别名 { #别名一般要有意义,能看出是做什么的 server ip:端口; #要实现负载的服务器的ip.端口号} 例: upstream ...
- Nginx负载均衡和反向代理的配置和优化
负载均衡 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位, 反向代理 是指以代理服务器来接受internet上的请求,然后将请求转给内部的服务器 常见的负载均衡 1. ...
- CentOS中nginx负载均衡和反向代理的搭建
1: 修改centos命令行启动(减少内存占用): vim /etc/inittab :initdefault: --> 修改5为3 若要界面启动使用 startx 2:安装jdk )解压:jd ...
- nginx 负载均衡及反向代理
Nginx简介 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师开发,官方测试nginx能够支支撑5万并发链接,并且cpu.内存 ...
- Nginx负载均衡与反向代理的配置实例
user www www; worker_processes 10; error_log /data1/logs/nginx_error.log crit; pid /usr/local/webser ...
随机推荐
- tuple必须加上逗号
tuple支持 空 元组 不加逗号 >>> tup4 = () tuple非空的元组必须加上逗号>>> tup4 = (55,)>>> tup4 ...
- gitbook安装使用教程
以下是gitbook的简略安装使用过程,可以参考一下.后续有时间我再回头修改完善实验目的:安装gitbook后,将相关的文件发布到gitlab上安装node.js在cmd下执行安装npm instal ...
- rsync 服务配置_rsync命令使用方法
rsync介绍 rsync用来定时备份服务器中的文件或者目录,有三种工作模式,本地复制,使用系统用户认证,守护进程方式,开源高效.同步工具,把一台机器上的文件同步都另一台机器 .默认使用873端口 选 ...
- C++编程计算图形的面积(圆、矩形)
C++基础,while循环与if判断实现的计算图形面积 1 #include <iostream> 2 3 int main() { 4 while (true){ 5 int input ...
- Ubuntu 16.04安装PyCharm
PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本.PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Proj ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十六)——dapr+sentinel中间件实现服务保护
dapr目前更新到了1.2版本,在之前4月份的时候来自阿里的开发工程师发起了一个dapr集成Alibaba Sentinel的提案,很快被社区加入到了1.2的里程碑中并且在1.2 release 相关 ...
- Go语言协程并发---原子操作
package main import ( "fmt" "sync/atomic" ) /* 用原子来替换锁,其主要原因是: 原子操作由底层硬件支持,而锁则由操 ...
- win系统下如何安装xgboost,开发环境是anaconda,以及这中间需要注意的问题
最近学到了xgboost,但是anaconda并没有这个环境只好自己安装了... 注: (1)并没有测试anaconda在2.x的版本下是如何安装的, 基本上应该是大同小类的,我的anaconda版本 ...
- DelayQueue延迟队列原理剖析
DelayQueue延迟队列原理剖析 介绍 DelayQueue队列是一个延迟队列,DelayQueue中存放的元素必须实现Delayed接口的元素,实现接口后相当于是每个元素都有个过期时间,当队列进 ...
- 解决maven依赖冲突问题
解决maven依赖冲突问题 1.idea 安装maven helper插件 2.打开pom.xml文件 底部多出一个Dependency Analyzer选项 点开这个选项 找到冲突,点击右键,选择E ...