Nginx基础知识
Nginx基础知识
东子 著
内容结构
•
•
•
•

特性介绍
安装指南
管理命令
配置文件

2
内容结构
•
•
•
•

特性介绍
安装指南
管理命令
配置文件

3
没错,这是匹黑马!

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

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

6
内容结构
•
•
•
•

特性介绍
安装指南
管理命令
配置文件

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

8
内容结构
•
•
•
•

特性介绍
安装指南
管理命令
配置文件

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

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

11
内容结构
•
•
•
•

特性介绍
安装指南
管理命令
配置文件

12
配置文件
•
•
•
•

语法规则
负载均衡
整合php-fpm
如何rewrite

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

14
配置文件 -语法规则 -全局配置
配置文件-语法规则•
•
•
•
•

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]

15
配置文件 -语法规则 -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] '

16
配置文件 -负载均衡 -样例
配置文件-负载均衡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;
}
}
}

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

补充: down,backup
18
配置文件 -整合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;
}
}

19
配置文件 -整合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`

20
配置文件 -rewrite-指令列表
配置文件-rewrite-rewrite-指令列表
•
•
•
•
•

set
break
return
if
rewrite

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

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

用法:rewrite 正则 替换 标志位
用法:rewrite
rewrite的生效区块为server, location, if
rewrite的生效区块为
的生效区块为server,
rewrite只对相对路径进行匹配 ,不处理host。
rewrite只对相对路径进行匹配 不处理host
只对相对路径进行匹配,
host。
标志位:

1. break:停止rewrite检测,rewrite的最终结果。
• last:停止当前区块rewrite检测,转而去其他location尝
试匹配。
• redirect:返回302,临时重定向。
1. permanent:返回301,永久重定向。

24
配置文件 -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;

25
3x

课题三:Nginx基础知识