当前位置:首页 > 技术文章 > 正文内容

Nginx官方推荐的nginx.conf标准配置

arlanguage3个月前 (01-20)技术文章25

Nginx官方发布“避免10大NGINX配置错误”中,推荐nginx.conf配置为:

http {

    upstream node_backend {
        zone upstreams 64K;
        server 127.0.0.1:3000 max_fails=1 fail_timeout=2s;
        keepalive 2;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_set_header Host $host;
            proxy_pass http://node_backend/;
            proxy_next_upstream error timeout http_500;

        }
    }
}

即使没有负载平衡或在一台机器内,也要启用upstream{}块,它解锁了几个提高性能的功能:

  • 该zone指令建立了一个共享内存区域,主机上的所有 NGINX 工作进程都可以访问有关上游服务器的配置和状态信息。几个上游组可以共享该区域。
  • 该server指令有几个参数可用于调整服务器行为。在这个例子中,我们改变了 NGINX 用来确定服务器不健康并因此没有资格接受请求的条件。在这里,如果通信尝试在每 2 秒内失败一次(而不是默认的每10 秒一次),它就会认为服务器不健康。
  • 我们把这个设置和proxy_next_upstream指令结合起来,以配置NGINX认为的失败的通信尝试,在这种情况下,它把请求传递给上游组的下一个服务器。在默认的错误和超时条件中,我们添加了http_500,以便NGINX认为来自上游服务器的HTTP 500(内部服务器错误)代码代表一个失败的尝试。
  • keepalive指令设置每个工作进程的缓存中保存的与上游服务器的空闲keepalive连接的数量。默认情况下,NGINX 会为每个新的传入请求打开一个到上游(后端)服务器的新连接。这是安全但低效的,因为 NGINX 和服务器必须交换三个数据包来建立连接,并交换三个或四个数据包来终止它。在高流量时,为每个请求打开一个新连接会耗尽系统资源,并且根本无法打开连接。修复是在 NGINX 和上游服务器之间启用keepalive 连接——而不是在请求完成时关闭,连接保持打开状态以用于其他请求。这既减少了源端口用完的可能性,又提高了性能。该参数设置为块中列出的服务器数量的两倍。

Nginx官方推荐的nginx.conf标准配置

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/967.html

标签: 腾讯 nginx
分享给朋友:

“Nginx官方推荐的nginx.conf标准配置” 的相关文章

陪你一起学kafka(五)——kafka如何发送消息到nginx

背景在实际的项目中,我们经常会遇到各种网络域的隔离,通常各个网络域之间的通信,我们会通过nginx做代理,进行转发。那kafka的消息可以通过nginx转发吗,答案是肯定的。今天分享给大家详细的过程。美好的一天,从分享开始,加油!准备kafka,版本2.13-3.0.0nginx,版本1.9.9环境...

基于 consul + nginx 的Spring boot微服务集群部署

consul + nginx 负载均衡最近做的基于consul的微服务项目,仅仅在单机上部署了一套,压测的时候扛不住(并发太高的时候linux文件连接数超过上限),于是想办法搞个集群部署。最终在我们的服务器的三台机器(mirage05-mirage07)上完成部署。一. 背景介绍以及项目现状1. c...

如何让Nginx更安全? nginx怎么保证高可用

网络安全的重要性不言而喻。那么小伙伴们有没有在日常使用 Nginx 的时候,特意去关注下它的安全配置呢?今天松哥和小伙伴们讨论一下如何安全的使用 Nginx,给大伙几个建议。一 使用最新版建议使用最新版的 Nginx,对于已经部署的 Nginx,要及时更新到最新版本,以确保所有已知的安全漏洞都已修补...

PHP-性能优化 php性能最优化安全最大化

1 尽量静态化如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。当然了,这个测试方法需要在十万级以上次执行,效果才明显。其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法(非静态方法)在程序运行中生成内存,所以静态方法可...

安卓手机上安装Linux开源模拟器-Termux

什么是TermuxTermux是一款基于 Android 平台的开源 Linux 终端模拟器,使用 pkg(apt) 进行软件包的管理。最重要的是,它无需手机 root 权限,因此,绝大多数 Android 都可以运行。Termux本质上是一个终端模拟器加上一套Linux的最小系统。这里的系统指的是...

为什么服务器管理用户都使用宝塔面板?

宝塔面板宝塔面板到底是个什么鬼?为什么这么多站长使用宝塔面板?宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得...