Nginx详解以及LNMP的搭建

小说:金钱才是爱情的源泉作者:龙丁更新时间:2019-03-24字数:20041

纪太虚冷笑一声:“你是个聪明人,别的话我便不多说了,你走吧!”

南昌市省公积金贷款及提前部分还贷攻略

“臣纪太虚叩见太子殿下千岁千岁千千岁!”进去之后纪太虚对太子叩拜道。
山本总队长面对死亡没有畏惧,十分的坦然,这一点值得刘皓佩服,因为能做到这一点的真的没多少人,而且两人刚才眼神在空中的触碰,他已经看出了山本老头的想法。

铁柱起身,身后村落年轻人快速围上,林风早已成为所有人心中英雄,一己之力对抗凶狼,同样可以从县衙带走李秀儿,所有一切在村民眼中都是无法做到的事。

Nginx详解以及LNMP的搭建


一、nginx 介绍

1.1 特性:

模块化设计,较好的扩展性

高可靠性

支持热部署:不停机更新配置文件,升级版本,更换日志文件

低内存消耗:10000 keep-alive 连接模式下的非活动连接,仅需要2.5M 内存

event-driven,aio,mmapsendfile

基本功能:

静态资源的web 服务器

http 协议反向代理服务器,负载均衡

pop3/imap4 协议反向代理服务器

FastCGI(lnmp),uWSGI(python) 等协议

模块化(非DSO ),如zip SSL模块

web 服务相关的功能:

虚拟主机(server

支持 keep-alive  和管道连接

访问日志(支持基于日志缓冲提高其性能)

url rewirte

路径别名

基于IP 及用户的访问控制

支持速率限制并发数限制

重新配置和在线升级而无须中断客户的工作进程

Memcached GET  接口

 

1.2 nginx 架构

 

nginx 的程序架构 :

master/worker 结构

一个master 进程:

负载加载和分析配置文件、管理worker 进程、平滑升级

 一个或多个worker 进程

处理并响应用户请求

缓存相关的进程:

cache loader :载入缓存对象

cache manager:管理缓存对象

 

1.3 nginx 高度模块化

但其模块早期不支持DSO 机制;1.9.11版本支持动态装载和卸载

模块分类:

核心模块:core module

标准模块:

HTTP : 模块: ngx_http_*

HTTP Core modules 默认功能

HTTP Optional modules  需编译时指定

Mail  模块 ngx_mail_*

Stream 块 模块 ngx_stream_*

第三方模块

 

1.4 nginx 的功用

静态的web 资源服务器

html,图片,js css txt 等静态资源

结合FastCGI/uWSGI/SCGI 等协议反向代理动态资源请求

http/https 协议的反向代理

imap4/pop3 协议的反向代理

tcp/udp 协议的请求转发(反向代理)

 

 

二、nginx 目录结构和命令

2.1 nginx 命令

ls /usr/local/nginx/

html 是测试页,sbin 是主程序

ls /usr/local/nginx/sbin/

nginx  只有一个程序文件

ls /usr/local/nginx/html/

50x.html index.html  测试网页

Nginx :默认为启动nginx

-h  查看帮助选项

-V  查看版本和配置选项

-t  测试nginx 语法错误

-c filename  指定配置文件(default: /etc/nginx/nginx.conf)

-s signal  发送信号给master 进程,signal 可为:

stop, quit,reopen, reload  示例:-s stop  停止nginx -s reload  加载配置文件

注意:不要和systemctl 混合使用

-g directives  在命令行中指明全局指令

 

2.2 配置文件的组成部分:

主配置文件:nginx.conf

子配置文件 include conf.d/*.conf

fastcgiuwsgi scgi 等协议相关的配置文件

mime.types :支持的mime 类型

主配置文件的配置指令:

directive value [value2 ...];

注意:

(1)  指令必须以分号结尾

(2)  支持使用配置变量

内建变量:由Nginx 模块引入,可直接引用

自定义变量:由用户使用set 命令定义

set variable_name value;

引用变量:$variable_name

 

三、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 与套接字相关的配置

1server 配置虚拟主机

server {

listen address[:PORT]|PORT;

server_name SERVER_NAME;

root /PATH/TO/DOCUMENT_ROOT;

}

 

2listen 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; 指令指向不同的主机名

 

3server_name name ...;

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

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

server_name *.magedu.com www.magedu.*

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

server_name  ~^wwwd+.magedu.com$

d 表示 [0-9]

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

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

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

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

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

⑤ default_server

 

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

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

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

默认On 时,不延迟发送

可用于:http, server, location

 

5sendfile on | off;

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

 

6server_tokens on | off | build | string

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

 

3.4 定义路径相关的配置

7root

设置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段,还可用于httpserverlocationif in locatin

 

8location [ = | ~ | ~* | ^~ ] 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 做正

当前文章:http://zxqss.com/array/77667/index.html

发布时间:2019-03-24 04:29:14

看看手机如何把你变傻的! 既然选择了远方,那只能风雨兼程 鸡汤比鸡肉更有营养吗? 除了生死,都是小事 茶叶的基本分类,品质的概念。 为孩子参加选秀拉票 好不好? 未婚夫要和别人结婚了 失恋了怎么办?

暗蛾破茧的那个刹那 为什么我们要称呼他为芈月呢? 好给他们看 游完泳回到家还会溺死? 【恋爱课堂】亲密关系:依恋理论 脚语 独特的心理泄露 “说教”多了伤孩子 如何让“心理成长”帮助孩子更优秀 46岁伊能静梅开二度,折射出了大龄产妇的何种心态? 为了孩子,父母该不该守住破碎的婚姻 【情感问答】考研和爱情哪个更重要? 南昌购房夫妻双方落户详细程序和材料 我该怎么面对一个人的孤独? 一喝酒就脸红的人能锻炼酒量吗? 参加非比老师成人依恋修复工作坊有感 “舍”而后才会有所“得” 李嘉诚:我一直都在,从未离开 自己改变命运的方法 老公看到我不再冲动怎么办?

编辑:华平安杜

我要说两句: (0人参与)

发布