Slide 1

Slide 1 text

Nginx Nginx Nginx Nginx基础知识 基础知识 基础知识 基础知识 东子 东子 东子 东子 著 著 著 著

Slide 2

Slide 2 text

2 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 • 管理命令 • 配置文件

Slide 3

Slide 3 text

3 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 • 管理命令 • 配置文件

Slide 4

Slide 4 text

4 没错,这是匹黑马! 没错,这是匹黑马! 没错,这是匹黑马! 没错,这是匹黑马!

Slide 5

Slide 5 text

5 各种优点 各种优点 各种优点 各种优点 1.异步非阻塞 2.缓存文件描述符 3.简单的负载均衡 4.热部署

Slide 6

Slide 6 text

6 适合场景 适合场景 适合场景 适合场景 • LB • 静态文件服务器 • Web应用服务器

Slide 7

Slide 7 text

7 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 • 管理命令 • 配置文件

Slide 8

Slide 8 text

8 安装指南 安装指南 安装指南 安装指南 • 安装命令:apt-get install nginx • 重要路径: 1,运行文件路径:/usr/sbin/nginx 2,配置文件路径:/etc/nginx/

Slide 9

Slide 9 text

9 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 • 管理命令 • 配置文件

Slide 10

Slide 10 text

10 管理命令:启动、关闭 管理命令:启动、关闭 管理命令:启动、关闭 管理命令:启动、关闭 • 启动:nginx -c /usr/nginx/nginx.conf • 关闭: 1,kill -QUIT `cat /var/run/nginx.pid` 2,kill -TERM `cat /var/run/nginx.pid`

Slide 11

Slide 11 text

11 管理命令:重启、检查配置 管理命令:重启、检查配置 管理命令:重启、检查配置 管理命令:重启、检查配置 • 重启: 1,kill -HUP `cat /var/run/nginx.pid` 2,nginx -s reload • 检测配置: nginx -t /usr/nginx/nginx.conf

Slide 12

Slide 12 text

12 内容结构 内容结构 内容结构 内容结构 • 特性介绍 • 安装指南 • 管理命令 • 配置文件

Slide 13

Slide 13 text

13 配置文件 配置文件 配置文件 配置文件 • 语法规则 • 负载均衡 • 整合php-fpm • 如何rewrite

Slide 14

Slide 14 text

14 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则 语法规则- - - -结构 结构 结构 结构

Slide 15

Slide 15 text

15 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则 语法规则- - - -全局配置 全局配置 全局配置 全局配置 • user www www • worker_proccesses 4 • worker_rlimit_nofile 10240 • pid /var/run/nginx.pid • error_log /var/error.log info [ debug | info | notice | warn | error | crit]

Slide 16

Slide 16 text

16 配置文件 配置文件 配置文件 配置文件- - - -语法规则 语法规则 语法规则 语法规则-server -server -server -server • listen 80 • server_name localhost • access_log /var/log/access.log main [main,timing,up_head,mine] • log_format main '$remote_addr - $remote_user [$time_local] '

Slide 17

Slide 17 text

17 配置文件 配置文件 配置文件 配置文件- - - -负载均衡 负载均衡 负载均衡 负载均衡- - - -样例 样例 样例 样例 http { upstream myproject { server 127.0.0.1:8000 weight=3; server 127.0.0.1:8001 } server { listen 80; server_name www.domain.com; location / { proxy_pass http://myproject; } } }

Slide 18

Slide 18 text

18 配置文件 配置文件 配置文件 配置文件- - - -负载均衡 负载均衡 负载均衡 负载均衡- - - -策略 策略 策略 策略 策略: 策略: 策略: 策略:轮询,weight,ip_hash ip_hash 写法: upstream myproject { server 127.0.0.1:8000; server 127.0.0.1:8001; ip_hash; } 补充: 补充: 补充: 补充:down,backup

Slide 19

Slide 19 text

19 配置文件 配置文件 配置文件 配置文件- - - -整合 整合 整合 整合PHP-nginx PHP-nginx PHP-nginx PHP-nginx相关配置 相关配置 相关配置 相关配置 server { listen 80; server_name www.domain.com; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } }

Slide 20

Slide 20 text

20 配置文件 配置文件 配置文件 配置文件- - - -整合 整合 整合 整合PHP-php-fpm PHP-php-fpm PHP-php-fpm PHP-php-fpm • 必要编译参数: 必要编译参数: 必要编译参数: 必要编译参数:--enable-fpm • 必要配置选项: 必要配置选项: 必要配置选项: 必要配置选项:listen 127.0.0.1:9000 • 管理命令: 管理命令: 管理命令: 管理命令: 1,php-fpm 2,kill -INT `cat /var/php-fpm.pid` 3,kill -USR2 `cat /var/php-fpm.pid`

Slide 21

Slide 21 text

21 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令列表 指令列表 指令列表 指令列表 • set set set set • break break break break • return return return return • if if if if • rewrite rewrite rewrite rewrite

Slide 22

Slide 22 text

22 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令: 指令:if if if if • 相等与不等: 相等与不等: 相等与不等: 相等与不等:= = = =, , , ,!= != != != • 检测符号: 检测符号: 检测符号: 检测符号:-f,-d,-e,-x -f,-d,-e,-x -f,-d,-e,-x -f,-d,-e,-x • 匹配正则: 匹配正则: 匹配正则: 匹配正则: ~,大小写敏感匹配 ~,大小写敏感匹配 ~,大小写敏感匹配 ~,大小写敏感匹配 ~ ~ ~ ~* * * *,大小写不敏感匹配 ,大小写不敏感匹配 ,大小写不敏感匹配 ,大小写不敏感匹配 ! ! ! !~,大小写敏感不匹配 ~,大小写敏感不匹配 ~,大小写敏感不匹配 ~,大小写敏感不匹配 ! ! ! !~ ~ ~ ~* * * *,大小写不敏感不匹配 ,大小写不敏感不匹配 ,大小写不敏感不匹配 ,大小写不敏感不匹配

Slide 23

Slide 23 text

23 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令: 指令:if if if if例子 例子 例子 例子 例子 例子 例子 例子1 1 1 1: : : : if ($request_method = POST ) { if ($request_method = POST ) { if ($request_method = POST ) { if ($request_method = POST ) { return 405; return 405; return 405; return 405; } } } } 例子 例子 例子 例子2 2 2 2: : : : if (!-f $request_filename) { if (!-f $request_filename) { if (!-f $request_filename) { if (!-f $request_filename) { break; break; break; break; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; proxy_pass http://127.0.0.1; } } } } 例子 例子 例子 例子3 3 3 3: : : : if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { if ($http_user_agent ~ MSIE) { rewrite ^(. rewrite ^(. rewrite ^(. rewrite ^(.* * * *)$ /msie/$1 )$ /msie/$1 )$ /msie/$1 )$ /msie/$1 break; break; break; break; } } } }

Slide 24

Slide 24 text

24 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令: 指令:rewrite rewrite rewrite rewrite • 用法: 用法: 用法: 用法:rewrite rewrite rewrite rewrite 正则 正则 正则 正则 替换 替换 替换 替换 标志位 标志位 标志位 标志位 • rewrite rewrite rewrite rewrite的生效区块为 的生效区块为 的生效区块为 的生效区块为server, location, if server, location, if server, location, if server, location, if • rewrite rewrite rewrite rewrite只对相对路径进行匹配 只对相对路径进行匹配 只对相对路径进行匹配 只对相对路径进行匹配, , , ,不处理 不处理 不处理 不处理host host host host。 。 。 。 • 标志位: 标志位: 标志位: 标志位: 1. break:停止rewrite检测,rewrite的最终结果。 • last:停止当前区块rewrite检测,转而去其他location尝 试匹配。 • redirect:返回302,临时重定向。 1. permanent:返回301,永久重定向。

Slide 25

Slide 25 text

25 配置文件 配置文件 配置文件 配置文件-rewrite- -rewrite- -rewrite- -rewrite-指令: 指令: 指令: 指令:rewrite rewrite rewrite rewrite例子 例子 例子 例子 break例子: rewrite ^/media/(.*)\..*$ $1/mp3 break; last例子: rewrite ^/media/(.*)\..*$ $1/mp3 last; redirect例子: rewrite ^(.*)$ http://newdomain.com/ redirect; permanent例子: rewrite ^(.*)$ http://newdomain.com/ permanent;

Slide 26

Slide 26 text

3x 3x 3x 3x