1亿pv的网站,一台Nginx做负载均衡,能抗住么?又怎么做冗余

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1亿pv的网站,一台Nginx做负载均衡,能抗住么?又怎么做冗余相关的知识,希望对你有一定的参考价值。

参考技术A 抗不了,高峰时并发数在1000万以上,进程处理一次最少5毫秒交换数据,把线程考虑后,并发数要处理600到800万,考虑可接受性,内核至少120到200核,通常用xeon系列双cpu22核5到6台,350瓦*24h*365天=3066kw,3066*6台=18396kw,这仅是代理服务器用电!

nginx配置详解

nginx 的优点:

1. 占有内存少,轻量级web服务器

2. 并发能力强,最大连量可达百万级(前提是服务器能抗住)

3. 处理静态文件,索引文件,性能大约是apache的3-5倍)

4. 简单的负载均衡和容错

5. 配置简单


apache的优点:

1. rewrite强大,动态请求功能强大

2. 模块较多

3. 稳定性较好


nginx和apache的关系:

nginx通常用于做代理服务器,apache通常用于搭建集群用于处理用户请求,nginx和apache通常协同工作



代理服务器:

反向代理:接收用户的请求,将用户的请求按照权重分配给各个服务器进行处理

正向代理:类似于一个跳板,当用户无法直接访问某个网站是可以借助代理服务器间接访问(vpn最为典型的代理服务器)

配置文件注意事项:

1、尽量不要在主配置文件(nginx.conf)中添加过多的配置项

2、将大多数配置都写在其他的文件中,在配置文件中使用include指令申明其余的配置文件

3、nginx配置文件指令都要以";"(分号)结尾

4、配置文件的所有路径都是以nginx的工作目录为根(/)目录

配置文件详解:


全局配置段:

user  nginx; #运行用户

worker_processes  4; #工作进程数,通常为cpu核心数或(核心数-1)

worker_rlimit_nofile  65535; #worker打开的最大文件数

error_log  logs/error.log  info; #错误日志位置和级别

pid        logs/nginx.pid; #进程pid





events段:控制nginx性能

use  epoll; #网络I/O模型,linux系统默认使用epoll

worker_connections  20480; #打开的最大文件句柄数,linux系统默认为1024



http段:http请求的处理

include  conf_file; #导入其他配置文件

access_log  logs/access.log  name; #全局访问日志位置和级别

log_format  name  format; #定义日志格式

keepalive_timeout  120; #长连接超时时间

gzip on; #开启文件压缩功能

gzip_comp_level 9; #设置压缩比

upstream段:定义负载均衡集群

upstream  name { #配置集群池

#ip_hash;       #指定算法,默认为轮询算法

server ip_address; #默认配置

server ip_address weight=2; #指定权重,默认为1

server ip_address backup; #配置为备份服务器

}

算法:

轮询算法:每个请求按时间顺序逐一分配到不同的后端服务器

指定权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

    ip_hash:通过ip_hash计算,将用户绑定到一个后端服务器,多用于需要登录的网站


 

server段:虚拟主机配置段(一般会把虚拟主机端独立出去,使用include导入)

listen  80 default_server; #监听端口,定义默认服务器,支持正则表达式

server_name  localhost; #主机名,支持统配符,相当于apache的ServerName

access_log  logs/host.access.log  name; #虚拟主机访问日志(优先于全局访问日志)


location段:定义目录匹配(支持正则表达式)

root  html #指定网站根目录,相当于apache的DocumentRoot

index  index.html; #指定首页名

proxy_pass   http://name; #调用上面定义的负载均衡集群(反向代理)

rewrite  正则   处理方法   #url重写

location详解:

语法:location [=|^~|~|/] /uri/ { 处理内容 }

匹配优先级和匹配条件(多个location字段是生效):

=:精确匹配

^~:前缀匹配

~:正则表达式匹配模型(区分大小写)

~*:正则表达式匹配模型(不区分大小写)

/:通用匹配

url重写(rewrite)的优点:

1、易于被搜索引擎收录

2、隐藏url路径

3、方便用户访问

rewrit的处理方法:

1、last:使用最多的

2、break:终止rewrite,不在继续匹配

3、redirect:临时跳转

4、premanent:永久跳转



本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1913340

以上是关于1亿pv的网站,一台Nginx做负载均衡,能抗住么?又怎么做冗余的主要内容,如果未能解决你的问题,请参考以下文章

讲讲亿级PV的负载均衡架构!

系统容量预估

nginx配置详解

电商总结系统容量预估

电商总结系统容量预估

淘宝为什么能抗住90秒100亿点击?解析高并发服务器架构