变相怪杰 发表于 2015-1-16 13:44:40

来一发nginx进修总结五(nginx反向代办署理)

如果你学不好的话,你在linux中开发的机会就很少,或者说几乎没有,它的优势就消失了,然后随着时间的流逝,你就会全部忘记她;
Nginx代办署理与负载平衡设置与优化

Nginx代办署理

Nginx从0.7.48版本入手下手,撑持了相似Squid的缓存功效。Nginx的Web缓存服务次要由proxy_cache相干指令集和fastcgi_cache相干指令集组成,前者用于反向代办署理时,对后端内容源服务器举行缓存,后者次要用于对FastCGI的静态程序举行缓存。二者的功效基础上一样。

Nginx0.8.32版本,proxy_cache和fastcgi_cache已对照完美,加上第三方的ngx_cache_purge模块(用于扫除指定URL的缓存),已能够完整代替Squid。

在功效上,Nginx已具有Squid所具有的Web缓存减速功效、扫除指定URL缓存的功效。而在功能上,Nginx对多核CPU的使用,赛过Squid很多。别的,在反向代办署理、负载平衡、安康反省、后端服务器妨碍转移、Rewrite重写、易用性上,Nginx也比Squid壮大很多。这使得一台Nginx能够同时作为“负载平衡服务器”与“Web缓存服务器”来利用。

上面的文档申明了nginx怎样做代办署理服务器,将哀求转发到其他服务器,自己不做缓存。利用版本为nginx-0.8.15,设置以下:

.代码以下:

http
{
……..
client_max_body_size300m;//同意客户端哀求的最年夜单个文件字节数
client_body_buffer_size128k;
//缓冲区代办署理缓冲用户端哀求的最年夜字节数,能够了解为先保留到当地再传给用户
proxy_connect_timeout600;
//跟后端服务器毗连的超不时间_倡议握手期待呼应超不时间
proxy_read_timeout600;
//毗连乐成后_期待后端服务器呼应工夫_实在已进进后端列队当中期待处置
proxy_send_timeout600;
proxy_buffer_size16k;//会保留用户的头信息,供nginx举行划定规矩处置
proxy_buffers432k;//告知nginx保留单个用的几个buffer最年夜用多年夜空间
proxy_busy_buffers_size64k;
proxy_max_temp_file_size64k;
//proxy缓存一时文件的巨细


.代码以下:

upstreamclubsrv{
server192.168.0.110:80weight=5;
server192.168.0.121:80weight=5;
}
upstreammysrv{
server192.168.0.32:80weight=2;
server127.0.0.1:8000weight=8;
}
server{
listen80;
server_nameclub.xywy.com;
charsetgbk;
root/www;
access_loglogs/aaa.logcombined;
//上面是第一个域名,利用clubsrv的代办署理
location/{
proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;
//假如后端服务器前往502、504或实行超时等毛病,主动将哀求转发到upstream另外一台服务器
proxy_passhttp://clubsrv;
//与下面upstream本人定名的名字填写分歧
proxy_redirectoff;
proxy_set_headerHostclub.xywy.com;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
//nginx在前端做代办署理,后真个日记会显现127.0.0.1,下面设置能够显现用户实在IP(还需装第三方软件,见上面的具体申明)
indexindex.htmindex.htmlindex.php;
}
//上面是第二个域名,利用mysrv的代办署理,会见www.sum.com/message目次下的
server{
listen80;
server_namewww.sum.com;
location/message{
proxy_passhttp://mysrv;
proxy_set_headerHost$host;
//会见这个域名的,只要mysrv本机能够会见
}
//会见除/message以外的www.sum.com/地点,
location/{
proxy_passhttp://mysrv;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;


上面的设置,与下面毛病前往的效果不异,这里能够不写。
.代码以下:

error_page500502503504/50x.html;
location=/50x.html
{
roothtml;
}


2、Nginx负载平衡指令
Nginx属于软件的七层负载平衡(lvs是软件的四层负载平衡的代表),七层负载平衡软件另有L7SW(Layer7switching)、HAProxy等。撑持负载平衡的模块是HttpUpstream。上面先容此模块及他上面的几个指令
HTTPUpstream模块
(1)ip_hash指令
当对后真个多台静态使用服务器做负载平衡时,ip_hash指令将某个客户端IP的哀求经由过程哈希算法定位到统一台后端服务器上。如许,当来自某ip用户在SeverA上登录后,再会见该站点的其他URL时,能包管会见仍在ServerA上。假如不加ip_hash,到场用户在ServerA上登录,再会见该站点其他URL,就有大概跳转到后真个SeverB、C…..,而session纪录在A上,B、C上没有,就会提醒用户未登录。
注重:但这类会见不克不及包管后端服务器的负载平衡,大概后端有些server承受到的哀求多,有些server承受的少,设置的权重值不起感化。
倡议假如后真个静态使用程序服务器能做到session共享,而不必nginx上设置ip_hash的体例。
.代码以下:

upstreammysrv{
ip_hash;
server192.168.0.110:80weight=2;
server127.0.0.1:8000down;
server192.168.0.212:80weight=8;
}


(2)server指令
该指令用语指定后端服务器的称号和参数。服务器的称号能够是一个域名,一个ip,端标语或UNIXSocket。

参数先容:
weight=number:设置服务器权重,权重值越高,被分派到客户端哀求数越多。默许为1;
max_fails=numbser:在fail_timeout指定的工夫内对后端服务器哀求失利的次数,假如检测到后端服务器没法毗连及产生毛病(404除外),则标志为失利。假如没有设置,默许为1。设置为0则封闭这项反省。
fail_timeout=time:在履历参数max_fails设置的失利次数后,停息的工夫。
down:暗示服务器为永世离线形态。
Backup:仅仅在非backup服务器全体down或忙碌的时分才启用。
设置以下:
.代码以下:

upstreammysrv{
ip_hash;
serverwww.xywy.comweight=2;
server127.0.0.1:8000down;
server192.168.0.212:80max_fails=3fail_timeout=30s;
serverunix:/tmp/bakend3;
}


本文出自“进修要永久”博客
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho

再现理想 发表于 2015-1-18 10:49:48

我是学习嵌入式方向的,这学期就选修了这门专业任选课。

因胸联盟 发表于 2015-1-23 16:52:13

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

灵魂腐蚀 发表于 2015-2-6 22:42:25

选择交流平台,如QQ群,网站论坛等。

飘灵儿 发表于 2015-2-19 05:44:32

一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。

admin 发表于 2015-3-13 02:09:08

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

老尸 发表于 2015-3-13 02:09:08

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一。

活着的死人 发表于 2015-3-20 10:17:44

眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
页: [1]
查看完整版本: 来一发nginx进修总结五(nginx反向代办署理)