Nginx系列(十三 nginx负载均衡)
一.负载均衡配置
<code><span># 负载均衡</span><span>upstream</span> webserver { <span>server</span><span>192.168.27.134:8080</span>; <span>server</span><span>192.168.27.135:80</span>; <span>server</span><span>192.168.27.136:80</span>; } <span># 反向代理</span><span>server</span> { <span>listen</span><span>80</span>; <span>server_name</span> www.test01.com; <span>location</span> / { <span>proxy_pass</span><span>http://webserver</span>; <span>proxy_redirect</span><span>off</span>; <span>proxy_set_header</span> Host <span>$host</span>; <span>proxy_set_header</span> X-Real-IP <span>$remote_addr</span>; <span>proxy_set_header</span> X-Forwarded-For <span>$proxy_add_x_forwarded_for</span>; } } <span># web服务器</span><span>server</span> { <span>listen</span><span>8080</span>; <span>server_name</span> www.test01.com; <span>access_log</span> logs/host.access.log main; <span>location</span> / { <span>root</span> /web/www/thinkphp; <span>index</span> index.php index.html index.htm; <span>if</span> (!-e <span>$request_filename</span>) { <span>rewrite</span><span> ^/(.*)$</span> /index.php/<span>$1</span><span>last</span>; } } <span>location</span><span>~ [^/]\.php(/|$)</span> { <span>root</span> /web/www/thinkphp; <span>fastcgi_index</span> index.php; <span>fastcgi_pass</span><span>127.0.0.1:9000</span>; <span>include</span> fastcgi_params; <span>fastcgi_split_path_info</span><span> ^(.+?\.php)(/.*)$</span>; <span>fastcgi_param</span> SCRIPT_FILENAME <span>$document_root</span><span>$fastcgi_script_name</span>; <span>fastcgi_param</span> SCRIPT_NAME <span>$fastcgi_script_name</span>; <span>fastcgi_param</span> PATH_INFO <span>$fastcgi_path_info</span>; <span>fastcgi_param</span> PATH_TRANSLATED <span>$document_root</span><span>$fastcgi_path_info</span>; } }</code>
二. 负载均衡算法
1.轮询 (默认)
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; }</code>
2.weight
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span> weight=<span>1</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span> weight=<span>2</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span> weight=<span>2</span>; }</code>
3.ip_hash ( 解决session共享问题)
<code>upstream webserver { ip_hash; <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; }</code>
4.fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。(第三方)
<code>upstream webserver { <span>server</span><span>192.168</span><span>.27</span><span>.134</span>:<span>8080</span>; <span>server</span><span>192.168</span><span>.27</span><span>.135</span>:<span>80</span>; <span>server</span><span>192.168</span><span>.27</span><span>.136</span>:<span>80</span>; fair; }</code>
参考:http://wiki.nginx.org/HttpUpstreamFairModule
5.url_hash 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。(第三方)
<code><span>upstream</span> webserver { <span>server</span><span>192.168.27.134:8080</span>; <span>server</span><span>192.168.27.135:80</span>; <span>server</span><span>192.168.27.136:80</span>; <span>hash</span><span>$request_uri</span>; }</code>
参考:http://wiki.nginx.org/HttpUpstreamRequestHashModule
6.一致性hash (第三方)
参考:http://wiki.nginx.org/HttpUpstreamConsistentHash
三.相关配置
Weight:指定轮询权值,Weight值越大,分配到的访问机率截越高,主要用于后端每个服务器性能不均的情况下。
down:表示当前的server暂时不参与负载均衡,通常和ip_hash一起使用。
backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。
max_fails:在一定时间内(这个时间在fail_timeout参数中设置)检查这个服务器是否可用时产生的最多失败请求数,默认为1。将其设置为0可以关闭检查,这些错误在proxy_next_upstream和fastcgi_next_upstream(404错误不会使max_fails增加)中定义。
fail_timeout:在这个时间内产生了max_fails所设置大小的失败尝试连接请求后这个服务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试连接请求发起之前),默认为10秒,fail_timeout与前端响应时间没有直接关系,不过可以使用proxy_connect_timeout和proxy_read_timeout来控制。
四.参考资料
http://baidutech.blog.51cto.com/4114344/1033718
http://lobert.iteye.com/blog/1929623
http://blog.csdn.net/poechant/article/details/7256184
以上就介绍了Nginx系列(十三 nginx负载均衡),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

WindowsServerBackup是WindowsServer操作系统自带的一个功能,旨在帮助用户保护重要数据和系统配置,并为中小型和企业级企业提供完整的备份和恢复解决方案。只有运行Server2022及更高版本的用户才能使用这一功能。在本文中,我们将介绍如何安装、卸载或重置WindowsServerBackup。如何重置Windows服务器备份如果您的服务器备份遇到问题,备份所需时间过长,或无法访问已存储的文件,那么您可以考虑重新设置WindowsServer备份设置。要重置Windows

nginxupstream开启keepaliveupstreamtomcat{serverops-coffee.cn:8080;keepalive1024;}server{location/{proxy_http_version1.1;proxy_set_headerConnection"";proxy_passhttp://tomcat;}}nginx在项目中大多数情况下会作为反向代理使用,例如nginx后接tomcat,nginx后接php等,这时我们开启nginx和后端

在发布WindowsServer的build26040版本之际,微软公布了该产品的官方名称:WindowsServer2025。一同推出的,还有Windows11WindowsInsiderCanaryChannel版本的build26040。有些朋友可能还记得,多年前有人成功将WindowsNT从工作站模式转换为服务器模式,显示微软操作系统各版本之间的共性。尽管现在微软的服务器操作系统版本和Windows11之间有明显区别,但关注细节的人可能会好奇:为什么WindowsServer更新了品牌,

fastcgi:fastcgi是从cgi发展改进而来的。传统cgi接口方式的主要缺点是性能很差,因为每次http服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给http服务器。这在处理高并发访问时,几乎是不可用的。另外传统的cgi接口方式安全性也很差,现在已经很少被使用了。fastcgi接口方式采用c/s结构,可以将http服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当http服务器每次遇到动态程序时,可以将其直接交付给fastcg

如何修改nginx默认的名称,可以稍微的伪装一下,也可以装x一般来说修改3个位置,一个是nginx.h、另一个是ngx_http_header_filter_module.c、还有一个ngx_http_special_response.c。提示:一般修改都是在nginx编译之前修改,修改完了之后需要重新编译代码如下:scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

微软在面向桌面端发布Win11预览版更新的同时,今天还发布了WindowsServer长期服务通道(LTSC)预览版Build25335。微软和以往相同,并未公布完整的更新日志,甚至于没有提供相应的博客文章。微软调整了WindowsServer预览版更新日志,让其和Canary频道版本相同,如果没有引入新的内容,则不放官方博文。IT之家注:Server的品牌尚未更新,在预览版中仍为WindowsServer2022。此外,微软将这些版本称为WindowsServervNext,而不是已经上市的W

如果你认为安装UbuntuServer11.04版完全没必要装图形界面,更没有必要装目前还不是很完善的GNOME3。。或者应该用ARCH+GNOME3搭建。那么请别继续浪费时间看下去。前后花了2个晚上和一个白天,重装了N次。终于有点成果了。不容易啊。废话少说,正题:硬件:ThinkPadX61一只,UbuntuServer11.04安装U盘一只上网:ADSL(无线,有线)操作:伪程序猿一枚1.插入U盘,重启笔记本,狂按F12。(针对X61)2.进入启动选项界面,选择USB启动,然后选择安装Ubu

1月16日消息,根据国外科技媒体WindowsLatest报道,WindowsServer2022安装KB5034129更新之后,导致Chrome、Edge和Firefox浏览器以及Adobe等应用白屏,无法显示内容。在2024年1月的补丁星期二活动中,微软发布了KB5034129更新,专为解决WindowsServer2022中的Wi-Fi适配器问题而设计。此更新受到广泛推荐,许多公司应当安装以确保系统的稳定性和性能。不过很多安装升级之后的用户反馈,WindowsServer2022更新会导致
