Nginx的配置文件详解(超详细)

本文深入解析Nginx的安装、配置文件结构及其主要配置选项,包括全局配置、HTTP服务器配置、HttpGzip模块、负载均衡、虚拟主机与URL匹配以及StubStatus模块,帮助读者全面理解Nginx的运作机制。
摘要由CSDN通过智能技术生成

1、安装Nginx
在安装Nginx之前,需确保系统已经安装了gcc、 openssl-devel、 pcre-devel和zlib-devel软件库。

下面是Nginx安装过程:

  1. wget http://nginx.org/download/nginx-1.0.14.tar.gz

  2. tar zxvf nginx-1.0.14.tar.gz

  3. ./configure --with-http_stub_status_module --prefix=/opt/nginx

  4. cd nginx-1.0.14

  5. make

  6. make install

其中, –with-http_stub_status_module 可以用来启用 Nginx 的 NginxStatus 功能,以监控 Nginx 的运行状态。

想要了解更多的模块的情况可以通过 ./configure –help 选项查看。

2、Nginx的配置文件结构
Nginx的配置文件nginx.conf位于其安装目录的conf目录下。
nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location:

main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

  • main块设置的指令将影响其他所有设置;
  • server块的指令主要用于指定主机和端口;
  • upstream指令主要用于负载均衡,设置一系列的后端服务器;
  • location块用于匹配网页位置。

这四者之间的关系式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。
在这四个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx的主模块指令、事件模块指令、HTTP核心模块指令,同时每个部分还可以使用其他HTTP模块指令,例如Http SSL模块、HttpGzip Static模块和Http Addition模块等。

2.1 Nginx的全局配置

代码如下:

 
  1. 1

  2. 2

  3. 3

  4. 4

  5. 5

  6. 6

  7. 7

  8. 8

  9. 9

  10. 10

 
  1. user nobody nobody;

  2. worker_processes 2;

  3. error_log logs/error.log notice;

  4. pid logs/nginx.pid;

  5. worker_rlimit_nofile 65535;

  6.  

  7. events{

  8. use epoll;

  9. worker_connections 65536;

  10. }

每个配置选项的含义解释如下:

  • user是个主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行。
  • worker_processes是个主模块指令,指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。
  • error_log是个主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少。
  • pid是个主模块指令,用来指定进程pid的存储文件位置。
  • 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变为:max_clients = worker_processes * worker_connections/4。
进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效

2.2 HTTP服务器配置

Nginx对HTTP服务器相关属性的配置代码如下:

 
  1. 1

  2. 2

  3. 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值