1. 云栖社区>
  2. >
  3. 正文

Nginx学习历程_配置文件说明

作者:用户 来源:互联网 时间:2018-09-07 15:54:41

nginx

Nginx学习历程_配置文件说明 - 摘要: 本文讲的是Nginx学习历程_配置文件说明, 此系列来自 http://freeloda.blog.51cto.com/2033581/1285722 1. nginx 配置文件结构 Nginx配置文件主要分为4部分:main(全局设置)、server(

此系列来自 http://freeloda.blog.51cto.com/2033581/1285722

1. nginx 配置文件结构

Nginx配置文件主要分为4部分:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。main部分设置的指令将影响其他所有设置;server部分的指令主要用于指定主机和端口;upstream指令主要用于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。这四者之间的关系如下:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。如下图,

Nginx学习历程_配置文件说明

在这4个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令。同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、Http Gzip Static模块和Http Addition模块等。

下面通过一个Nginx配置实例,详细介绍nginx.conf每个指令的含义。为了能更清楚地了解Nginx的结构和每个配置选项的含义,这里按照功能点将Nginx配置文件分为7个部分依次讲解。下面就围绕这7个部分进行介绍。 2. 配置文件详解

(1).Nginx 的全局配置文件 1 2 3 4 5 6 7 8 9 10 11 #user  nobody;   worker_processes  1; #error_log  logs/error.log;   #error_log  logs/error.log  notice;    #error_log  logs/error.log  info; #pid        logs/nginx.pid; worker_rlimit_nofile 65535;  events {      use epoll;      worker_connections  1024;   }

上面这段代码中每个配置选项的含义解释如下:

user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。

worker_processes是个主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10MB~12MB内存。根据经验,一般指定一个进程足够了,如果是多核CPU,建议指定和CPU的数量一样多的进程数即可。(注,如果负载以CPU密集型应用为主,如SSL或压缩应用,则worker数应与CPU数相同;如果负载以IO密集型为主,如响应大量内容给客户端,则worker数应该为CPU个数的1.5或2倍。)

error_log是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。

pid是个主模块指令,用来指定进程id的存储文件位置。

worker_rlimit_nofile 用于绑定worker进程和CPU, Linux内核2.4以上可用。

events指令用来设定Nginx的工作模式及连接数上限。

use是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。

worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即max_client=worker_processes*worker_connections,在作为反向代理时变为:max_clients = worker_processes * worker_connections/4。(注,进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。)

(2).HTTP服务器配置

注,接下来开始对HTTP服务器进行配置。下面这段内容是Nginx对HTTP服务器相关属性的配置,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 http {        include       mime.types;         default_type  application /octet-stream ;      #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  0;        keepalive_timeout  65;      #gzip  on;

以上是Nginx学习历程_配置文件说明的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有Nginx学习历程_配置文件说明的相关内容,欢迎继续使用右上角搜索按钮进行搜索nginx ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备
Apache Spark Meetup China 第1期 最全资料下载