用Nginx高并发,实现抢票系统(最简单实现思路)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Nginx高并发,实现抢票系统(最简单实现思路),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1942字,纯文字阅读大概需要3分钟。
内容图文
![用Nginx高并发,实现抢票系统(最简单实现思路)](/upload/InfoBanner/zyjiaocheng/960/d49e70b18516496581943a68bba17650.jpg)
最近接到一个时间特别紧的抢票系统项目,只有10天时间,要面对6万高并发抢票,实现核心思路如下:
1.使用nginx限流,超过并发数,直接返回特定html页面
三种常见nginx限流方式为:
1)、limit_conn_zone
2)、limit_req_zone
3)、ngx_http_upstream_module
这里就不详细参数,网上文章比较多,并发数限制后,超过并发数的,就会返回503错误,503错误页面,可以按如下方式定制页面,例如定制页面为“服务器繁忙”或“操作太频繁,请稍后再试”类似信息,具体配置如下:
server { listen 80; error_page 503 /503.html; location /test { return 502; } }
2.nginx集群
nginx集群配置文档比较多,这里就不累赘。
3.修改socket限制
1.对socket方面的优化
这一步又要分为两个方面的设置:
1)操作系统(linux)的设置:
@ socket 的最大连接数的修改 在centos中修改socket最大连接数的方法 (这里的文件是进程文件已经在运得的,不能使用vim编辑器修改),方法如下
echo 50000 > /proc/sys/net/core/somaxconn (系统默认的值是128,现在改成50000)
@ 加快系统的tcp回收机制 (系统默认tcp在断开后还会存活一段时间) 方法如下
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle (系统默认是0,修改为1)
@ 允许空的tcp回收利用 方法如下
echo 1 >/proc/sys/net/ipv4/tcp_tw_reuse (系统默认为0,修改为1)
@ 让系统不做洪水抵御保护,(当系统检测到80端口在大量的请求时,会自动给返回信息中增加 cookie ,还验证客户端身份,从而避免受到攻击,但这时只是高并发,并不是攻击,所以要把这个抵御机制给关闭) 方法如下
echo 0 >/proc/sys/net/ipv4/tcp_syncookie (系统默认为1,修改为0)
2)nginx的设置:
@ 允许子进程打开的连接 ,在event段中 worker_connections 1024; nginx默认能打开1024个连接
修改 worker_connections 10000; 修改为可以打开10000个socket连接
2.对文件系统方面的优化
1)操作系统方面:
@ 让操作系统允许打开更多的文件 ulimit -n(设置一个比较大的值)
ulimit -n 10240; (把操作系统允许打开文件的最大值设为10240,原本的默认值是1024)
2)nginx 配置子进程可以打开的文件个数
在nginx全局的配置中 worker_processes 1;下面加上worker_limit_nofile 10240;
@ work_limit_nofile 10240 ; (nginx的子进程可以打开10240个文件)
内容总结
以上是互联网集市为您收集整理的用Nginx高并发,实现抢票系统(最简单实现思路)全部内容,希望文章能够帮你解决用Nginx高并发,实现抢票系统(最简单实现思路)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。