Nginx 大并发 调优设置
为了性能测试,放弃部分功能,保证绝对性能。 注意可能不能用于生产环境。
下面开始简单讲解。
1. worker_processes 工作线程数. 发现不用太多 一定不能多于操作系统的CPU核数.
2. events 建议使用 epoll, 现在最佳的io模型
3. http 里面 sendfile on 可以使用 zero copy 提高性能.
4. gzip on 使用压缩,提高性能.
5. client等配置,提高缓存应用效果.
6. proxy 相关配置, 避免出现因为后端访问超时出现各种异常问题.
7. upstream server 注意可以使用weight以及max_fails 参数. 避免服务器FGC时因为STW造成响应不及时出现异常错误提示.
8. ip_hash 因为只使用前面三段ip地址容易出现负载不均衡的现象, 性能测试建议去掉, 功能测试可以使用外加sticky模式.
9. server段里面 listen 没什么说的保证正常使用即可.
10. 如下内容保证可以传递给后端服务正确的客户端信息 以及不知道是不是重复的设置
注意 如果使用 $host 变量,必须添加端口, 并且与listen的端口一致, 应该也可以使用 http_host 内部变量,可以不添加端口信息.
proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_set_header Host $host:5200; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
11. access_log off 破釜沉舟, 提高性能. 发现不关闭log 一小时能够产生十几G的日志, 估计会拖慢nginx的相应时间, 没办法这些内容暂时就放弃了.
12. 其他内容一切从简 .
如下就是自己的一个简单的例子 可能还需要继续完善. 短暂进行学习mark一下. 希望高手指正.
worker_processes 44; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { default_type application/octet-stream; sendfile on; gzip on; client_header_buffer_size 64k; large_client_header_buffers 4 64k; client_body_buffer_size 20m; gzip_buffers 16 8k; proxy_buffer_size 64k; proxy_buffers 4 128k; proxy_busy_buffers_size 256k; keepalive_timeout 240; proxy_connect_timeout 600s; proxy_send_timeout 1200; proxy_read_timeout 1200; upstream webservers { #ip_hash; server 127.0.0.1:5201 weight=10 max_fails=10; server 127.0.0.1:5202 weight=10 max_fails=10; server 127.0.0.1:5203 weight=10 max_fails=10; } server {
listen 5200;
server_name localhost;
root /usr/share/nginx/html;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_set_header Host $host:5200;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /
{
access_log off;
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' "true";
proxy_pass http://webservers;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
相关文章
- Spring并发访问的线程安全性问题
- 尼恩Java高并发三部曲,极致经典+入大厂必备+面试必备+高薪必备
- SpringCloud Nginx 高并发核心编程 PDF 电子书 免费获取
- SpringCloud、Nginx高并发核心编程 【2020年11月新书 】
- 多线程,控制Task的20个并发数量,全部子线程执行完后,获取所有返回的值
- Server Develop (五) Linux并发模型
- Doug Lea并发编程文章全部译文
- 并发编程--阻塞队列使用总结
- java 大厂面试指南:性能优化 + 微服务 + 并发编程 + 开源框架 + 分布式
- 我工作三年了,该懂并发了!
- 线程高级应用-心得8-java5线程并发库中同步集合Collections工具类的应用及案例分析
- 高并发量网站解决方案
- 11 线程同步 并发 线程同步 队列和锁 代码:不安全的买票 代码:不安全的取钱 代码:线程不安全的集合
- 《C++并发编程实战》——第1章 你好,C++并发世界
- 并发编程概述--C#并发编程经典实例
- 《高并发Oracle数据库系统的架构与设计》一2.6 本章小结
- 利用MongoDB的SplitVector命令实现并发数据迁移
- Nginx_查看并发连接数
- 并发性能测试程序编写
- Mysql事务,并发问题,锁机制
- 学习笔记(10):Python网络编程&并发编程-粘包现象
- Nginx压测和并发预估
- nginx压力测试和并发预估
- Spring 的 Controller 是单例还是多例?怎么保证并发的安全!