nginx负载均衡

nginx简单介绍

nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力却是在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度,京东,网易,新浪,腾讯,淘宝等。

Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。

无缓存的反向代理加速,简单的负载均衡和容错。

FastCGI,简单的负载均衡和容错。

模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter。如果由 FastCG或其它代理服务器处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。

优点:

Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。

Nginx 的源代码使用 2-clause BSD-like license。

在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

*nginx负载均衡是怎么做的

1.DNS解析:在域名解析时分配给不同的服务器IP;

2.IP Hash:根据客户端的IP,将请求分配到不同的服务器上;

3.cookie:服务器给客户端下发一个cookie,具有特定的cookie的请求会分配给它的发行者;

sticky就是基于cookie的一种负载均衡解决方案,通过cookie实现客户端与后端服务器的会话保持,在一定条件下可以保证同一个客户端访问的都是同一个后端服务器。请求来了,服务器发个cookie,并说:下次来带上,直接来找我。

sticky工作原理

sticky是nginx的一个模块,通过分发和识别cookie,来使用同一个 客户端的请求落在同一台服务器。sticky的处理过程如下(假设cookie名称为route):

1.客户端首次发起请求,请求头末带route的cookie。nginx接收请求,发现请求头没有route,则以轮循方式请求分配给后端服务器。

2.后端服务器处理完请求,将响应头和内容返回给nginx.

3.nginx生成route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5,sha1等Hash值。

4.客户端接收请求,并创建route的cookie.

5.客户端再次发送请求时,带上route.

6.nginx接收route,直接转给对应的后端服务器。

nginx操作步骤

nginx的安装:

1.解压nginx包:

先要有nginx-1.14.0.tar.gz的包,解压包

tar zxf nginx-1.14.0.tar.gz

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio   ##二进制编译    (如果二进制编译不成功,则需要yum install gcc gcc-c++ pcre-devel openssl-devel -y)

make && make install

du -sh    ##查看所占内存大小

./nginx    ##开启服务,或者直接nginx也可以开启服务

netstat -antulp    ##查看服务端口,80

curl -I localhost    ##自己检测自己

**因为6M比较大,所以,我们可以删除这次的安装,通过修改文件使得下次安装会占内存比较小

./nginx -s stop   ##停止服务

删除相关文件,并进行清理

vim nginx-1-14.0/usr/core/nginx.h    ##编辑文件(删除“nginx”后面的东西)

vim nginx-1.14.0/auto/cc/gcc    ##编辑文件(注释掉debug下面一行)

然后进行二进制编译,make && make nstall ,这次安装之后,所占内存会变小(过程同上,省略)

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/     ##作链接

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值