Nginx详解以及LNMP的搭建(2)

user nginx;                //nginx运行时是以谁的身份开启的子进程

worker_processes auto;      //进程数,auto是自动和CPU核数相对应

worker_priority number;    //指定worker 进程的nice 值,设定worker 进程优先级:[-19,19]

error_log  /var/log/nginx/error.log  info;  //错误日志的路径和级别

pid /var/run/nginx.pid;     //指定存储nginx 主进程PID 的文件路径

include file                //指明包含进来的其它配置文件片断

events {

worker_connections  30000;  //每个worker 进程所能够打开的最大并发连接数数量,默认是1024,一般都不够,调大

use epoll;      //指明并发连接请求的处理方法, 默认自动选择最优方法

}

accept_mutex on/off;        //前台|后台运行

Nginx详解以及LNMP的搭建

3.2 http 协议段的相关配置

格式介绍

http {  //可以放多个server段

... ...

server {

...

server_name

root

location [OPERATOR] /uri/ {

...

}

}

server {

...

}

}

3.3 与套接字相关的配置

(1)server 配置虚拟主机

server {

listen address[:PORT]|PORT;

server_name SERVER_NAME;

root /PATH/TO/DOCUMENT_ROOT;

}

Nginx详解以及LNMP的搭建

 

(2)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  发送缓冲区大小

注意:

① 基于port;

listen PORT; 指令监听在不同的端口

② 基于ip 的虚拟主机

listen IP:PORT; IP  地址不同

③ 基于hostname

server_name fqdn; 指令指向不同的主机名

(3)server_name name ...;

虚拟主机的主机名称后可跟多个由空白字符分隔的字符串

支持* 通配任意长度的任意字符

server_name *.magedu.com *

支持~ 起始的字符做正则表达式模式匹配,性能原因慎用

server_name  ~^www\d+\.magedu\.com$

\d 表示 [0-9]

匹配优先级机制从高到低:

① 首先是字符串精确匹配  如:

左侧*通配符 如:*.magedu.com

右侧* 通配符 如:*

④ 正则表达式 : 如: ~^.*\.magedu\.com$ ,因为消耗cpu运算

⑤ default_server

(4)tcp_nodelay on | off;    在长连接的情况下,是否延迟

在keepalived 模式下的连接是否启用TCP_NODELAY 选项

当为off 时,延迟发送,合并多个请求后再发送

默认On 时,不延迟发送

可用于:http, server, location

(5)sendfile on | off;

是否启用sendfile 功能,在内核中封装报文直接发送,默认Off

(6)server_tokens on | off | build | string

是否在响应报文的Server 首部显示nginx版本

3.4 定义路径相关的配置

(7)root

设置web 资源的路径映射;用于指明请求的URL 所对应的文档的主目录路径,可用于http, server, location, if in location

server {

...

root /data/www/vhost1;

}

示例

--> /data/www/vhosts/images/logo.jpg

注意:root 不仅可以用在server段,还可用于http、server、location、if in locatin

(8)location [ = | ~ | ~* | ^~ ] uri { ... }  主要控制URL路径

location @name { ... }

在一个server 中location 配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix 会根据用户请求的URI 来检查定义的所有location ,并找出一个最佳匹配,而后应用其配置

示例:

① server {...

server_name ;

location /images/ {

root /data/imgs/;

}

}

--> /data/imgs/images/logo.jpg

② = :对URI 做精确匹配;

location = / {

...

}

  匹配

  不匹配

③ 正则符号的作用

^~:对URI 的最左边部分做匹配检查,不区分字符大 小写

~:对URI 做正则表达式模式匹配,区分字符大小写

~* :对URI 做正则表达式模式匹配,不区分字符大小写

不带符号:匹配起始于此uri 的所有的uri

④ 匹配优先级从高到低:

=, ^~,  ~/ ~*, 不带符号

Nginx详解以及LNMP的搭建

(9)alias path;

路径别名,文档映射的另一种机制;仅能用于location 上下文

示例:

location /bbs/ {

alias /web/forum/;

} --> /web/forum/index.html

location /bbs/ {

root /web/forum/;

} --> /web/forum/bbs/index.html

注意:location 中使用root 指令和alias 指令的意义不同

(a) root ,给定的路径对应于location 中的/uri/左 侧的/

(b) alias ,给定的路径对应于location 中的/uri/右 侧的/,完全置换

(10)index file ...;

指定默认网页资源,注意:ngx_http_index_module 模块

例:index index.php index.html

(11)error_pagecode ... [=[response]] uri;  错误页面

模块:ngx_http_core_module

定义错误页, 以指定的响应状态码进行响应

可用位置:http, server, location, if in location

error_page 404 /404.html

error_page 404 =200 /404.html  错误状态码改为200,还是原来的错误页面

(12)try_files file ... uri;

try_files file ... =code;

按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有的文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI 的指向。最后一个参数是回退URI 且必须存在,否则会出现内部500 错误

location /images/ {

try_files $uri /images/default.gif;

}

location / {

try_files $uri $uri/index.html $uri.html =404;

}

Nginx详解以及LNMP的搭建

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/314b55b3f7b111132061b89be9012d48.html