登陆

极彩app-Nginx 常用指令阐明

admin 2019-08-23 218人围观 ,发现0个评论

1. main 大局装备

nginx在运转时与详细事务功用(比方http服务或许email服务署理)无关的一些参数,比方作业进程数,运转的身份等。

  • woker_processes 2
  • 在装备文件的尖端main部分,worker人物的作业进程的个数,master进程是接纳并分配恳求给worker处理。这个数值简略一点能够设置为cpu的核数grep ^processor /proc/cpuinfo | wc -l,也是 auto 值,假如敞开了ssl和gzip更应该设置成与逻辑CPU数量相同甚至为2倍,能够削减I/O操作。假如ngi极彩app-Nginx 常用指令阐明nx服务器还有其它服务,能够考虑恰当削减。
  • worker_cpu_affinity
  • 也是写在main部分。在高并发情况下,经过设置cpu粘性来下降因为多CPU核切换形成的寄存器等现场重建带来的功用损耗。如worker_cpu_affinity 0001 0010 0100 1000; (四核)。
  • worker_connections 2048
  • 写在events部分。每一个worker进程能并发处理(主张)的最大衔接数(包括与客户端或后端被署理服务器间等一切衔接数)。nginx作为反向署理服务器,计算公式 最大衔接数 = worker_processes * worker_connections/4,所以这儿客户端最大衔接数是1024,这个能够增到到8192都没联系,看情况而定,但不能超越后边的worker_rlimit_nofile。当nginx作为http服务器时,计算公式里边是除以2。
  • worker_rlimit_nofile 10240
  • 写在main部分。默许是没有设置,能够约束为操作体系最大的约束65535。
  • use epoll
  • 写在events部分。在Linux操作体系下,nginx默许运用epoll事情模型,得益于此,nginx在Linux操作体系下功率适当高。一起Nginx在OpenBSD或FreeBSD操作体系上选用类似于epoll的高效事情模型kqueue。在操作体系不支撑这些高效模型时才运用select。

2. http服务器

与供给http服务相关的一些装备参数。例如:是否运用keepalive啊,是否运用gzip进行紧缩等。

  • sendfile on
  • 敞开高效文件传输方法,sendfile指令指定nginx是否调用sendfile函数来输出文件,削减用户空间到内核空间的上下文切换。关于一般运用设为 on,假如用来进行下载等运用磁盘IO重负载运用,可设置为off,以平衡磁盘与网络I/O处理速度,下降体系的负载。
  • keepalive_timeout 65 : 长衔接超时时刻,单位是秒,这个参数很灵敏,触及浏览器的品种、后端服务器的超时设置、操作体系的设置,能够别的起一片文章了。长衔接恳求很多小文件的时分,能够削减重建衔接的开支,但假如有大文件上传,65s内没上传完结会导致失利。假如设置时刻过长,用户又多,长时刻坚持衔接会占用很多资源。
  • send_timeout : 用于指定呼应客户端的超时时刻。这个超时仅限于两个衔接活动之间的时刻,假如超越这个时刻,客户端没有任何活动,Nginx将会封闭衔接。
  • client_max_body_size 10m
  • 答应客户端恳求的最大单文件字节数。假如有上传较大文件,请设置它的约束值
  • client_body_buffer_size 128k
  • 缓冲区署理缓冲用户端恳求的最大字节数

模块http_proxy:

这个模块完成的是nginx作为反向署理服务器的功用,包括缓存功用(另见文章)

  • proxy_connect_timeout 60
  • nginx跟后端服务器衔接超时时刻(署理衔接超时)
  • proxy_read_timeout 60
  • 衔接成功后,与后端服务器两个成功的呼应操作之间超时时刻(署理接纳超时)
  • proxy_buffer_size 4k
  • 设置署理服务器(nginx)从后端realserver读取并保存用户头信息的缓冲区巨细,默许与proxy_buffers巨细相同,其实能够将这个指令值设的小一点
  • proxy_buffers 4 32k
  • proxy_buffers缓冲区,nginx针对单个衔接缓存来自后端realserver的呼应,网页平均在32k以下的话,这样设置
  • proxy_busy_buffers_size 64k
  • 高负荷下缓冲巨细(proxy_buffers*2)
  • proxy_max_temp_file_size
  • 当proxy_buffers放不下后端服务器的呼应内容时,会将一部分保存到硬盘的临时文件中,这个值用来设置最大临时文件巨细,默许1024M,它与proxy_cache没有联系。大于这个值,将从upstream服务器传回。设置为0禁用。
  • proxy_temp_file_write_size 64k
  • 当缓存被署理的服务器呼应到临时文件时,这个选项约束每次写临时文件的巨细。proxy_temp_path(能够在编译的时分)指定写到哪那个目录。

proxy_pass,proxy_redirect见 location 部分。

模块http_gzip:

  • gzip on : 敞开gzip紧缩输出,削减网络传输。
  • gzip_min_length 1k :设置答应紧缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默许值是20。主张设置成大于1k的字节数,小于1k可能会越压越大。
  • gzip_buffers 4 16k :设置体系获取几个单位的缓存用于存储gzip的紧缩成果数据流。4 16k代表以16k为单位,装置原始数据巨细以16k为单位的4倍恳求内存。
  • gzip_http_version 1极彩app-Nginx 常用指令阐明.0 :用于辨认 http 协议的版别,前期的浏览器不支撑 Gzip 紧缩,用户就会看到乱码,所以为了支撑前期版别加上了这个选项,假如你用了 Nginx 的反向署理并希望也启用 Gzip 紧缩的话,因为结尾通讯是 http/1.0,故请设置为 1.0。
  • gzip_comp_level 6 :gzip紧缩比,1紧缩比最小处理速度最快,9紧缩比最大但处理速度最慢(传输快但比较耗费cpu)
  • gzip_types :匹配mime类型进行紧缩,不管是否指定,”text/html”类型总是会被紧缩的。
  • gzip_p张悦小甜甜roxied any :Nginx作为反向署理的时分启用,决议敞开或许封闭后端服务器回来的成果是否紧缩,匹配的条件是后端服务器必需要回来包括”Via”的 header头。
  • gzip_vary on :和http头有联系,会在呼应头加个 Vary: Accept-Encoding ,能够让前端的缓存服务器缓存经过gzip紧缩的页面,例如,用Squid缓存经过Nginx紧缩的数据。。

3. server虚拟主机

http服务上支撑若干虚拟主机。每个虚拟主机一个对应的server装备项,装备项里边包括该虚拟主机相关的装备。在供给mail服务的署理时,也能够树立若干server。每个server经过监听地址或端口来区别。

  • listen
  • 监听端口,默许80,小于1024的要以root发动。能够为listen *:80、listen 127.0.0.1:80等方法。
  • server_name
  • 服务器名,如localhost、www.example.com,能够经过正则匹配。

模块http_stream

这个模块经过一个简略的调度算法来完成客户端IP到后端服务器的负载均衡,upstream后接负载均衡器的姓名,后端realserver以 host:port options; 方法安排在 {} 中。假如后端被署理的只要一台,也能够直接写在 proxy_pass 。

4. location

http服务中,某些特定的URL对应的一系列装备项。

  • root /var/www/html
  • 界说服务器的默许网站根目录方位。假如locationURL匹配的是子目录或文件,root没什么效果,一般放在server指令里边或/下。
  • index index.jsp index.html index.htm
  • 界说途径下默许拜访的文件名,一般跟着root放
  • proxy_pass http:/backend
  • 恳求转向backend界说的服务器列表,即反向署理,对应upstream负载均衡器。也能够proxy_pass http://ip:port。
  • proxy_redirect off;
  • proxy_set_header Host $host;
  • proxy_set_header X-Real-IP $remote_addr;
  • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  • 这四个暂时这样设,假如深究的话,每一个都触及到很杂乱的内容,也将经过另一篇文章来解读。

关于location匹配规矩的写法,能够说尤极彩app-Nginx 常用指令阐明为要害且根底的,参阅文章 nginx装备location总结及rewrite规矩写法;

5. 其它

5.1 拜访操控 allow/deny

Nginx 的拜访操控模块默许就会装置,并且写法也十分简略,能够别离有多个allow,deny,答应或制止某个ip或ip段拜访,顺次满意任何一个规矩就中止往下匹配。如:

咱们也常用 httpd-devel 东西的 htpasswd 来为拜访的途径设置登录暗码:

这样就生成了默许运用CRYPT加密的暗码文件。翻开上面nginx-status的两行注释,重启nginx收效。

5.2 列出目录 autoindex

Nginx默许是不答应列出整个目录的。如需此功用,翻开nginx.conf文件,在location,server 或 http段中参加autoindex on;,别的两个参数最好也加上去:

  • autoindex_exact_size off; 默许为on,显现出文件的切当巨细,单位是bytes。改为off后,显现出文件的大约巨细,单位是kB或许MB或许GB
  • autoindex_localtime on;
  • 默许为off,显现的文件时刻为GMT时刻。改为on后,显现的文件时刻为文件的服务器时刻



请关注微信公众号
微信二维码
不容错过
Powered By Z-BlogPHP