Nginx现在已经是最火的web服务器之一,尤其在静态分离和负载均衡方面,性能十分优越。接下来我们主要看下Nginx在高并发环境下的优化配置,主要是针对 nginx.conf 文件的属性设置。我们打开 nginx.conf 文件,从上往下依次看下。

一、工作进程优化

#user nobody;
worker_processes ; #线程数,匹配服务器核心数目 #error_log logs/error_log; #可指定error_log日志的目录
#error_log logs/error_log notice;
#error_log logs/error_log info; #pid logs/nginx.pid #指定pid存放的路径

work_processes 是指 Nginx的工作进程数量,一般按照机器的CPU核数来设置,比如8核的服务就设置为8,16核的服务器,可设置为16。举例如下,

  • work_processes 4;#工作进程数量
  • worker_cpu_affinity 00000001 00000010 00000100 00001000;#为每个进程指定cpu

二、事件处理模型

events {
worker_connections ;
accept_mutex on;
multi_accept on;
use epoll;
}
  • worker_connections 102400; #每个工作进程允许的最大连接数。
  • accept_mutex on;
  • multi_accept on; # 打开同时接受多个新网络连接请求的功能。
  • use epoll; #使用高性能的 epoll 事件驱动,处理效率高。

     三、日志输出优化

  • ​nginx 允许自定义日志的优化输出,可以按照具体项目的需求定制。默认可以获得remote_addr、remote_user 和 http_user_agent、http_x_forwarded_for等属性。

    四、高效传输模式

    • sendfile on; # 开启高效文件传输模式。
    • tcp_nopush on; #需要在sendfile开启模式才有效,防止网络阻塞,积极的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不一个接一个的发送。

    五、开启传输压缩

    gzip on;# 这个属性主要是开启传输压缩功能,可以压缩传输的页面、js、json数据、图片等,占用更小的带宽,提高传输性能。

    经过上面的配置,大体如下

  

http {
include mine.types
default_type application/octet-scream; log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access_log main; sendfile on; #高性能传输模式
tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; gzip on; #开启传输压缩
gzip_min_length 1k;
gzip_buffers 4k;
gzip_http_version 1.0;
gzip_comp_level ;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on; server {
listen ;
server_name localhost; ...

好了,上面就是简单的 nginx 并发性能优化,是不是很简单呢,大家可以抽空试一下哦。

Nginx优化配置,轻松应对高并发的更多相关文章

  1. Nginx优化具体,应对高并发

     nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议依照cpu数目来指定.一般为它的倍数. worker_cpu_affinity 00000001 ...

  2. SpringCloud应对高并发的思路

    一.Eureka的高可用性 Eureka下面的服务实例默认每隔30秒会发送一个HTTP心跳给Eureka,来告诉Eureka服务还活着,每个服务实例每隔30秒也会通过HTTP请求向Eureka获取服务 ...

  3. Memcached笔记——(四)应对高并发攻击【转】

    http://snowolf.iteye.com/blog/1677495 近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最 ...

  4. nginx + uWSGI 为 django 提供高并发

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  5. 《即时消息技术剖析与实战》学习笔记10——IM系统如何应对高并发

    一.IM 系统的高并发场景 IM 系统中,高并发多见于直播互动场景.比如直播间,在直播过程中,观众会给主播打赏.送礼.发送弹幕等,尤其是明星直播间,几十万.上百万人的规模一点也不稀奇.近期随着武汉新型 ...

  6. nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)

    nginx简介(轻量级开源高并发web服务器:大陆使用者百度.京东.新浪.网易.腾讯.淘宝等)(并发量5w)(一般网站apache够用了,而且稳定) 一.总结 1.在连接高并发的情况下,Nginx是A ...

  7. Memcached笔记——(四)应对高并发攻击

    近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Mis ...

  8. Nginx中文详解、配置部署及高并发优化

      一.Nginx常用命令: 1. 启动 Nginx          /usr/local/nginx/sbin/nginxpoechant@ubuntu:sudo ./sbin/nginx2. 停 ...

  9. nginx性能优化(针对于高并发量仅供参考,并不是方案)

    目录 关于nginx.conf中的优化 配置nginx客户端网页缓存本地时间 nginx日志切割 nginx连接超时优化 Nginx 实现网页压缩功能 Nginx 实现防盗链功能 为目录添加访问控制 ...

随机推荐

  1. 设置 Jupyter notebook 工作空间 / 默认路径

    常用的启动 Jupyter notebook 的两种方式是:命令行窗口启动和开始菜单启动.设置 Jupyter notebook 的默认路径也有两种常用方式: 修改配置文件 设置快捷方式. 1 通过修 ...

  2. Nginx+Tomcat实现动静分离和负载均衡

    一.什么是动静分离? Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态 ...

  3. adb命令操作蓝牙

    打开和关闭蓝牙BT adb root adb shell svc bluetooth enable adb shell svc bluetooth disable UI层 查询:adb shell s ...

  4. 码云因为认证失败导致推送失败 生成 SSH 密钥对

  5. 【Linux】bat文件如何执行

    绝对路径,"/home/myDir/xxx.bat" OR 所在的目录,:"./xxx.bat".

  6. gnome 3 插件设置

    插件安装及管理方法 应该需提前在gnome-tweaks中打开user-theme,重启电脑后才可找到Add-ons Debian9 下在应用商店插件add-ons里进行选择安装,在应用商店已安装应用 ...

  7. 在Hadoop-3.1.2上安装HBase-2.2.1

    目录 目录 1 1. 前言 3 2. 缩略语 3 3. 安装规划 3 3.1. 用户规划 3 3.2. 目录规划 4 4. 相关端口 4 5. 下载安装包 4 6. 修改配置文件 5 6.1. 修改策 ...

  8. loj2245 [NOI2014]魔法森林 LCT

    [NOI2014]魔法森林 链接 loj 思路 a排序,b做动态最小生成树. 把边拆成点就可以了. uoj98.也许lct复杂度写假了..越卡常,越慢 代码 #include <bits/std ...

  9. JS中 (function(){...})()立即执行函数

    (function(){...})() (function(){...}()) 这是两种js立即执行函数的常见写法. 基本概念: 函数声明:function fname(){...}; 使用funct ...

  10. linux 自动化安装系统 -KS文件

    # Kickstart file automatically generated by anaconda. installharddrive --partition=sdb2 --dir=lang e ...