nginx配置详解

nginx配置详解nginx配置详解nginx介绍nginx特性nginx安装配置文件配置主配置文件结构main配置段常见的配置指令正常 运行必备的配置userpidincludeload_module性能优化相关的配置worker_processesworker_cpu_affinityworker_priorityworker_rlimit_nofile调试定位
摘要由CSDN通过智能技术生成

nginx配置详解

nginx介绍

nginx的程序架构

  • 采用master/worker架构

  • 一个master进程,负责加载和分析配置文件、管理worker进程、平滑升级

  • 一个或多个worker进程 处理并响应用户请求

  • 缓存相关的进程

    cache loader:载入缓存对象

    cache manager:管理缓存对象

nginx特性

异步、事件驱动和非阻塞

并发请求处理:通过kevent/epoll/select,/dev/poll

文件IO:高级IO sendfile,异步,mmap

nginx高度模块:高度模块化,但其模块早期不支持DSO机制;近期版本支持动态装载和卸载

模块分类:

  • 核心模块:core module
  • 标准模块:http module等等
  • 第三方模块

nginx的功用

  • 静态的web资源服务器;(图片服务器,或js/css/html/txt等静态资源服务器)
  • 结合FastCGI/uwSGI/SCGI等协议反代动态资源请求;
  • http/https协议的反向代理;
  • imap4/pop3协议的反向代理
  • tcp/udp协议的请求转发

nginx安装

1.配置yum源,yum安装
http://nginx.org/packages/centos/7/x86_64/RPMS/
yum -y install nginx


2.编译安装
yum install pcre-devel openssl-devel zlib-devel

useradd -r nginx

./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio

make && make install

配置文件

配置

配置文件的组成部分:

  • 主配置文件:nginx.conf

    include conf.d/*.conf

  • fastcgi, uwsgi,scgi等协议相关的配置文件

  • mime.types:支持的mime类型

主配置文件的配置指令:

directive value [value2 ...];

注意:
    (1) 指令必须以分号结尾;
    (2) 支持使用配置变量;
        内建变量:由Nginx模块引入,可直接引用;
        自定义变量:由用户使用set命令定义;
            set variable_name value;
            引用变量:$variable_name;

主配置文件结构

main block:主配置段,也即全局配置段;
    event {
    ...
}:事件驱动相关的配置;
http {
    ...
}:http/https 协议相关的配置段;
mail {
    ...
}
stream {
    ...
}

http协议相关的配置结构
http {
    ...
    ...:各server的公共配置
    server {
            ...
    }:每个server用于定义一个虚拟主机;
    server {
        ...
        server_name
        root
        alias
        location [OPERATOR] URL {
        ...
        if CONDITION {
                ...
                    }
        }
    }
}

main配置段常见的配置指令

分类:

  • 正常运行必备的配置
  • 优化性能相关的配置
  • 用于调试及定位问题相关的配置
  • 事件驱动相关的配置
正常 运行必备的配置
user
Syntax: user user [group];
Default:    user nobody nobody;
Context:    main

Defines user and group credentials used by worker processes. If group is omitted, a group whose name equals that of user is used
pid
pid /PATH/TO/PID_FILE;
指定存储nginx主进程进程号码的文件路径;
include
include file | mask;
指明包含进来的其它配置文件片断;
load_module
load_module file;
指明要装载的动态模块;
性能优化相关的配置
worker_processes
worker_processes number | auto;
worker进程的数量;通常应该为当前主机的cpu的物理核心数
worker_cpu_affinity
worker_cpu_affinity cpumask ...;
worker_cpu_affinity auto [cpumask];
CPU MASK:
    000000010号CPU
    000000101号CPU
worker_priority
worker_priority number;
指定worker进程的nice值,设定worker进程优先级;[-20,20]
worker_rlimit_nofile
worker_rlimit_nofile number;
worker进程所能够打开的文件数量上限;
调试、定位问题
daemon
daemon on|off;
是否以守护进程方式运行Nignx;
master_process
master_process on|off;
是否以master/worker模型运行nginx;默认为on
error_log
error_log file [level];
事件驱动相关的配置
events {
    ...
}

1、worker_connections number;
    每个worker进程所能够打开的最大并发连接数数量;                  
    worker_processes * worker_connections

2、use method;
    指明并发连接请求的处理方法;

    use epoll;

3、accept_mutex on | off;
处理新的连接请求的方法;on意味着由各worker轮流处理新请求,Off意味着每个新请求的到达都会通知所有的worker进程;

与套接字相关的配置

server { … }
server {
    listen address[:PORT]|PORT;
    server_name SERVER_NAME;
    root /PATH/TO/DOCUMENT_ROOT;
}
listen
listen PORT|address[:port]|unix:/PATH/TO/SOCKET_FILE
listen address[:port] [default_server] [ssl] [http2 | spdy]  [backlog=number] [rcvbuf=size] [sndbuf=size]

default_server:设定为默认虚拟主机;
ssl:限制仅能够通过ssl连接提供服务;
backlog=number:后援队列长度;
rcvbuf=size:接收缓冲区大小;
sndbuf=size:发送缓冲区大小;
server_name
server_name name ...;
指明虚拟主机的主机名称;后可跟多个由空白字符分隔的字符串;
支持*通配任意长度的任意字符;server_name *.magedu.com  www.magedu.*
支持~起始的字符做正则表达式模式匹配;server_name ~^www\d+\.magedu\.com$

匹配机制:
(1) 首先是字符串精确匹配;
(2) 左侧*通配符;
(3) 右侧*通配符;
(4) 正则表达式;
tcp_nodelay
tcp_nodelay on | off;
在keepalived模式下的连接是否启用TCP_NODELAY选项
sendfile

                
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Nginx 是一个高性能的开源 Web 服务器和反向代理服务器。它的配置文件是一个重要的部分,影响着服务器的行为和性能。下面是对 Nginx 配置文件的详细解释: 1. 配置文件位置: Nginx配置文件通常位于 /etc/nginx/nginx.conf。此外,可以通过 include 语句包含其他配置文件,使配置更加模块化。 2. 基本结构: Nginx配置文件由多个指令和块组成。指令是配置文件的最小单位,而块是由一对花括号括起来的指令集合。配置文件从上到下按顺序解析,遇到块会进一步解析块内的指令。 3. 主要指令: - worker_processes:指定 Nginx 创建的进程数。通常设置为 CPU 核心数的倍数。 - events:配置 Nginx 处理连接和请求的事件模型。 - http:定义 HTTP 服务器的全局配置。 - server:定义一个虚拟主机(或称为 server block),可以包含多个 location 块。 - location:根据请求的 URI 匹配规则,定义不同的请求处理方式。 4. 常用配置选项: - listen:指定监听的 IP 地址和端口。 - server_name:指定虚拟主机的域名。 - root:指定网站根目录。 - index:指定默认的索引文件。 - location:根据匹配规则指定不同的处理方式,如代理、重定向、静态文件处理等。 5. 变量和指令: Nginx 支持一些内置变量和指令,用于实现动态的配置和请求处理。常见的变量包括 $uri、$args 和 $http_user_agent,常见的指令包括 if、rewrite 和 return。 6. 配置文件的重载: 在修改配置文件后,可以通过发送信号给 Nginx 进程来重新加载配置,而无需停止服务器。常用的信号有 HUP(重新加载配置)和 TERM(停止服务器)。 这些是 Nginx 配置文件的一些基本概念和常用指令。具体的配置方式和使用方法可以根据实际需求进行深入学习和探索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值