手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Nginx详解以及LNMP的搭建

[日期:2017-11-13] 来源:cnblogs.com/keerya  作者:珂儿吖 [字体: ]

三、nginx 主配置文件的介绍和设置

3.1 Main 全局配置段常见的配置指令分类

3.1.1 介绍

- 正常运行必备的配置

- 优化性能相关的配置

- 用于调试及定位问题相关的配置

- 事件驱动相关的配置

3.1.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;        //前台|后台运行

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;

}

 

(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 www.magedu.*

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

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

\d 表示 [0-9]

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

① 首先是字符串精确匹配  如:www.magedu.com

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

右侧* 通配符 如:www.magedu.*

④ 正则表达式 : 如: ~^.*\.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;

}

示例

http://www.magedu.com/images/logo.jpg --> /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 www.magedu.com;

location /images/ {

root /data/imgs/;

}

}

http://www.magedu.com/images/logo.jpg --> /data/imgs/images/logo.jpg

② = :对URI 做精确匹配;

location = / {

...

}

http://www.magedu.com/  匹配

http://www.magedu.com/index.html  不匹配

③ 正则符号的作用

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

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

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

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

④ 匹配优先级从高到低:

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

 

(9)alias path;

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

示例:

http://www.magedu.com/bbs/index.php

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;

}

 

更多详情见请继续阅读下一页的精彩内容http://www.linuxidc.com/Linux/2017-11/148576p3.htm

linux
相关资讯       LNMP  LNMP搭建  Nginx详解 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款